1. linux的账号与群组

1.1 账户名称:/etc/passwd:

head -n 5 /etc/password  #取前5行
  1. 账号名称,对应UID
  2. 密码,早期是在这里,后来转到了/etc/shadow中,所以这里都是x
  3. UID的范围:0系统管理员,1-99留给系统预设的账号,100-499保留给一些服务来使用 ,500-65535给一般用户
  4. GID这是用户的初始化用户组:使用这一登录系统,就拥有这个群组的相关权限。
  5. 用户说明,基本没用
  6. 用户家目录
  7. 使用的shell,bash shell是linux默认使用的shell

uname -r可以来查找系统核心

1.2 账户密码:/etc/shadow:

head -n 5 /etc/shadow  #取前5行
grep 'root' /etc/shadow |awk '{print substr($0,6,34)}' #取密码段
  1. 账号名称
  2. 密码 采用MD5进行加密的密码,含有$1$的标志的34位密码组,如果密码为*或者!,则表示这个账号无法登陆。
  3. 最近修改密码的日期,以1970年1月1日作为1
  4. 密码不可更改日期,修改之后第几天可以再次修改密码
  5. 密码需要重新更新的天数
  6. 密码需要变更期限前的警告期限
  7. 密码过期的宽限时间
  8. 账号失效日期
  9. 保留

1.3 群用户:/etc/group:

groups #查看所属的用户组,有效用户组为第一个,
newgrp 用户组 #改变用户组
exit #退出当前用户组
  1. 用户组
  2. 密码,为x
  3. 用户组的GID
  4. 该用户组所支持的用户

1.4 群用户密码:/etc/gshadow:

  1. 用户组
  2. 密码,如果为*和!则不可登录
  3. 用户组管理员的账号
  4. 该用户组所属(支持)的用户,与/etc/group内容一样

2. 账号管理

2.1 新增与移除使用者、新增与移除群组:/etc/passwd:

passwd、usermod、useradd这三个命令都是root用户使用的,普通用户不能使用。

新增用户

grep user3 /etc/passwd /etc/shadow /etc/group /etc/gshadow  #查找这四个文件中有user3的部分。

删除用户

修改账号信息

插入图2.1.4

初始化群组和有效群组的改变。

usermod -g test2 -G 502 test1 #-g修改初始化群组,-G修改有效用户组

2.2 密码管理:/etc/passwd:

passwd user #修改密码

2.3 chfn chsh finger id:/etc/passwd:

chsh -s /bin/csh #root也可以用这个改,也可以用usermod
chsh -l #显示当前可用的shell

修改自己的相关信息

chfn #会依次让你修改大名、办公室房间号码、办公室电话号码、家里电话,改变的信息是/etc/passwd的第五栏使用者的信息说明栏

读取修改的信息,也就是用chfn修改的那些东西。

也可以用来查找当前系统的登录信息

id  #uid、gid、所支持的群组。

2.4 新增和移除群组:/etc/passwd:

3. 使用者用户切换

3.1 su:

3.2 sudo visudo:

sudo如果没有制定切换的账号,则默认使用root
sudo -u "#501" touch /home/test2/3.txt#必须用""包括起来。
sudo -u "#501" -p %H ls /home/test2 #完整的主机名称
sudo -u "#501" -p %h ls /home/test2 #主机名称
sudo -u test2 -p %U ls /home/test2 #切换到的账户名称
sudo -u test2 -p %u ls /home/test2 #使用者账户的名称



visudo是用来编辑/etc/sudoers,vi只可以可读。

vigr 编辑/etc/group

vimpw 编辑/etc/passwd

find / -perm -4000 | xargs ls -lhd  #查找系统下所有包含s权限的文件。

4. 使用者的特殊shell与PAM模块

4.1 特殊的shell:

cat /etc/passwd | more

usermod -s /sbin/nologin test1  #给test1指定nologin的shell

vi /etc/nologin.txt #然后输入不可登陆的信息

记录次数

#!/bin/awk -f
BEGIN{
FS=":"
}
{
if ($7=="/bin/bash") bash=bash+1
if ($7=="/sbin/nologin") nologin=nologin+1
}
END{
print "/bin/bash times is :" bash
print "/sbin/nologin times is :" nologin
}

使用bash shell

#!/bin/bash
read -p "please input the /etc/passwd :" path if [ -z "$path" -o "$path" != "/etc/passwd -o ! -e "$path" ];then
fi allshell='cut -d : -f 7 "$path"'
for oneshell in $allshell
do
if [ "$oneshell" = "/bin/bash" ];then
bash=$(($bash+1))
fi
if [ "$oneshell" = "/sbin/nologin" ];then
nologin=$(($nologin+1))
fi
done echo "/bin/bash has $bash times"
echo "/sbin/nologin has $nologin times"

4.2 PAM模块:

在/etc/security/access.conf中加入

  - : test1 : ALL EXCEPT 127.0.0.0/24 #仅限本地登陆,其他的ip都不能登陆。

5. 使用者的特殊shell与PAM模块

5.1 查询使用者:

last -n 5 -d
last -f wtmp2 #默认读取/var/log/wtmp,如果需要指定读另外一个,需加上-f参数

5.2 使用者talk:

mesg y
mesg n
write test1

如果root发送广播信息,即使其他用户关闭信息接收,也会收到信息。

5.3 使用者邮箱:

stty erase ^H
mail -s "this is first test" root@localhost
this is first test

1. linux的账号与群组

6.1 常用的一些命名:

6.2 建立用户流程:

vi /etc/group    #打开/etc/group文件进行编辑
test4:x:505: #加入test4用户组
grpconv #group和gshadow同步
grep test4 /etc/gshadow #查找gshadow,确认已经同步
vi /etc/passwd #打开/etc/passwd文件进行编辑
test4:x:505:505::/home/yesy4:/bin/bash #加入test4用户
pwconv #passwd和shadow同步
grep test4 /etc/shadow #查找shadow,确认已经同步
passwd test4 #输入密码 #输入用户的密码(设置)
mkdir /home/test4 #创建使用者家目录
ls -la /etc/skel #显示/etc/skel下的所有文件
cp -a /etc/skel/.[a-z]* /home/test4 #将/etc/skel下的所有文件都拷贝到使用者家目录中
ls -la /home/test4 #显示使用者家目录的所有文件和属性
chown -R test4:test4 /home/test4 #吧家目录的属性由root改为test4
ls -la /home/test4 #显示使用者家目录的所有文件和属性

vigr /etc/group    #打开/etc/group文件进行编辑
test5:x:505: #加入test5用户组
选择y #进入编辑gshadow
test5:x:: #加入test5用户组密码
vipw /etc/passwd #打开/etc/passwd文件进行编辑
test5:x:505:505::/home/yesy4:/bin/bash #加入test5用户
选择y #进入编辑shadow
test5:!!:14519:0:99999:7:3:: #加入test5shadow密码文件
passwd test4 #输入密码 #输入用户的密码(设置)
mkdir /home/test5 #创建使用者家目录
ls -la /etc/skel #显示/etc/skel下的所有文件
cp -a /etc/skel/.[a-z]* /home/test5 #将/etc/skel下的所有文件都拷贝到使用者家目录中
ls -la /home/test5 #显示使用者家目录的所有文件和属性
chown -R test4:test5 /home/test5 #吧家目录的属性由root改为test5
ls -la /home/test5 #显示使用者家目录的所有文件和属性

6.3 批量建立用户脚本:

建立用户

vi useradd.sh

#!/bin/bash
accountfile=user:passwd
test -e "$accountfile" && rm -f "$accountfile"; touch "$accountfile" || touch "$accountfile"
read -p "please input your zhuanye:" zhuanye
read -p "please input your grade:" grade
read -p "please input the start number:" start_nu
read -p "please input the user number:" user_nu
read -p "please choice passwd stardand:1)same as usernaem 2)random" pwd if [ "$zhuanye" ="" ];then
echo "you should input the zhuanye!!"; exit 1
fi
testing1='echo $grade | grep [^0-9]'
testing2='echo $start_nu | grep [^0-9]'
testing3='echo $user_nu | grep [^0-9]'
if [ "$testing1" !="" -o "$testing2" !="" -o "$testing3" !="" ];then
echo "the grade or start number or user number has include characters!!"; exit 1
fi for ((i=$start_nu;i<$(($start_nu+$user_nu));i++))
do
account=$zhuanye$grade$i
if [ "$pwd" = "1" ];then
password="$account"
else
password=""
test_nu=0
until [ "$test_nu" = "6" ]
do
temp_nu=$(($RANDOM*50/32767+30))
until [ "$test_nu" != "60" ]
do
temp_nu=$(($RANDOM*50/32767+30))
done
temp_ch='printf "\x$temp_nu"'
password=$password$temp_ch
temp_nu=$(($temp_nu+1))
done
fi
echo "$account":"$password" >>"$accountfile"
done
cat "$accountfile" | cut -d ":" | xargs -n 1 useradd
chpasswd < "$accountfile"
pwconv
echo "OK,successful"

删除用户

vi userdel.sh

#!/bin/bash
cat "user:passwd" | cut -d : -f1 | xargs -n 1 userdel -r

linux 基础9-账号与身份管理的更多相关文章

  1. linux基础之用户及用户组管理

    本节内容 用户管理 1. 为什么需要用户? 1.linux是一个多用户系统 2.权限管理(权限最小化) 2. 用户相关文件 /etc/passwd -->用户基本信息 /etc/shadow - ...

  2. 鸟哥的Linux私房菜——第十七章:Linux 账号与身份管理

    视频链接:http://www.bilibili.com/video/av10669732/ 1. Linux 的账号与群组1.1 使用者识别: UID 与 GID1.2 使用者账号:/etc/pas ...

  3. Linux基础学习笔记5-软件管理

    包管理器 二进制应用程序的组成部分: 二进制文件.库文件.配置文件.帮助文件 程序包管理器: debian:deb文件.dpkg包管理器 redhat:rpm文件.rpm包管理器 rpm:Redhat ...

  4. Linux基础学习笔记2-文件管理和重定向

    本节内容 1)文件系统结构元素 2)创建和查看文件 3)复制.转移和删除文件 4)软和硬链接 5)三种I/O设备 6)把I/O重定向至文件 7)使用管道 文件系统和结构 文件系统 文件和目录被组织成一 ...

  5. Linux 基础教程 35-软件包管理-YUM

    YUM基础     使用RPM在Linux中安装.卸载软件或服务进会经常碰到RPM包的依赖,而我们在安装软件A时,提示依赖于软件B,安装软件B时又会出现提示依赖于软件C等一系列的依赖关系.这时大家会提 ...

  6. Linux 基础教程 34-软件包管理-RPM

        对于Linux而言管理各类软件,如安装.卸载和升级等是常有的事情和必备的技能.以CentOS为例,常用的安装包命令有rpm和yum. RPM基础     RPM(RedHat Package ...

  7. Linux基础3(用户/组管理,rpm,yum,源码安装软件)

    用户管理 与用户相关的配置文件 /etc/passwd /etc/shadow /etc/skel /etc/defalut/useradd /etc/login.defs useradd userm ...

  8. Linux基础: 网络命令和进程管理

    ​  netstat lsof ps pstree pkill/kill (了解jenkins git,排查环境) 查询服务器之间是否有链接(netstat -an) 某个服务是否启动(了解服务对应的 ...

  9. linux基础 用户(组)管理

    修改/etc/shadow文件 1.chage -m MINDAYS USERNAME#设置密码修改最小天数2.chage -M MAXDAYS USERNAME#设置密码修改最大天数3.chage ...

随机推荐

  1. python reduce和偏函数partial

    functools模块 reduce方法: reduce方法 reduce方法,顾名思义就是减少 可迭代对象不能为空,初始值没提供就在可迭代对象中去一个元素 from functools import ...

  2. python面向对象之类属性,实例属性

    python中的属性分为类属性和实例属性,之前已经说过一些,这里主要是对类属性与实例属性的增删改查 首先是对类属性的增删改查,下面这个是对类属性的修改,在书写类时,已经对类属性occupation进行 ...

  3. Python3安装后无法使用退格键

    解决办法 # 安装readline模块 yum -y install readline-devel # 进入Python安装目录 cd /usr/python/Python-3.7.2 # 重新安装 ...

  4. leetcode1140 Stone Game II

    思路: dp,用记忆化搜索比较好实现. 实现: class Solution { public: int dfs(vector<int>& sum, int cur, int M, ...

  5. python邮件发送自动化测试报告

    话不多说直接贴代码 # encoding: utf-8import smtplib #发送邮件模块from email.mime.text import MIMEText #邮件内容from emai ...

  6. [学习笔记] Blender 常用工具栏,选择及游标

    Shift + A 创建物体 选择工具: 默认是框选 shift 鼠标左键 加选, 再次可减选 游标 默认情况下游标在世界中心.创建新物体时,会自动被创建在游标的位置.可以随意改变游标的位置,便于建模 ...

  7. 控制台程序转化为windows服务

    首先我们创建一个控制台应用程序WriteLog,然后添加windows服务LogService 新增的windows服务切换到代码视图,我这边用log4net进行的日志的记录 OnStart方式是服务 ...

  8. springboot整合thymeleaf——引用静态资源

    原html src="/css/index.css" thymeleaf中,th:src="@{/css/index.css}"

  9. PHP切割整数工具,类似微信红包金额分配

    Composer地址:https://packagist.org/packages/werbenhu/php-number-slicing GitHub地址:https://github.com/we ...

  10. 1263: 你会做蛋糕吗?(Java)

    WUSTOJ 1263: 你会做蛋糕吗? 参考博客 Mitsuha_的博客 Description BobLee是个大吃货,喜欢吃好吃的,也喜欢做好吃的.比如做正方形的蛋糕.比如下图这个5*5的蛋糕. ...