一、用户名文件。
root:x:0:0:root:/root:/bin/bash
共7部分。
1,用户名。
2,存放的是该帐号的口令,(密码)现存于/etc/shadpw/,所以现在用X表示。
3,代表用户标示号, uid
4,组 标示号,gid
5,注释说明。没有实际意义
6,用户的加目录。
7,用户的shell。
二、密码文件
user1:$6$X/dAMmCG$uLvF2l/Df/TgldEWVc7lL93bVxjKDpLStDWYcMD0DdN7a/VUwdl1PcEhYBOjTwOQd4JynfS/Vo53gwRJULW/j0:17090:0:99999:7:::
共9个字段
1,用户名。
2,用户密码。(加密了)
3,从1970年1月1日 到 上次更改密码的时间。 17090天
4,要过多少天才可以更改密码。默认是0.即不限制,
5,密码多少天后到期。即 在多少天内必须更改密码。默认9999
6,密码到期前的预警。设置为7,即密码到期前7天时发出警告。
7,账户失效期限。
8,账号的生命周期。
9,作为保留,没什么意义。
三、增加和删除用户以及组
#groupadd 组名
#groupadd -g 组名 设定改组的gid
#groupdel 组名 删除改组
#useradd 用户名
#useradd -u 自定义 UID
#useradd -g 使其属于某个已存在的某个组,后面也可以跟组id,也可跟组名。
#useradd -d 自定义用户的家目录
#useradd -M 不建立家目录
#例如
#useradd -u510 -g 513 -M -s /sbin/nologin user11 (/sbin/noloogin ,这个账户不能登录)
#userdel 用户 删除用户。
#userdel -r 用户 删除账户时,连同家目录一起删除。
四、usermod 修改用户属性
#usermod -u 用户 修改uid
-g 修改gid
-G 添加扩展组(使某个用户属于多个组)
-d 更改家目录
-s 修改shell
-L 锁定 -U 解锁
五、passwd修改用户密码。
#passwd 直接修改root用户的密码
#passwd user1 更改user1的密码
mapasswd 自动生成密码命令
安装;
#yum install -y expect
#mkpasswd 直接自动生成密码
#mkpasswd -l 12 -s 0 -d 3
-l 12 ,表示长度12位。-s 指定特殊字符个数。 -d 指定数字的个数。
一条命令修改用户密码,比较适合用在shell脚本中。
#echo -e "密码"|passwd --stdin user1
六、su 切换用户
root用户登录时
#su user1 切换到user1
#su - user1 -c "touch /tmp/1.txt" 直接以某个用户的身份去执行一条命令,在脚本中比较合适。
user1登录时
#su 直接切换到 root用户。此时root用户的家目录与user1 一样。
#su - ,切换到 root 用户,此时目录为root账户的家目录。、
七、sudo详解。
使普通用户,利用sudo这个命,令去执行一个只有root用户才能执行的命令,只需要普通用户的密码。
安装命令。
#yum install -y visudo
#visudo
找到,root ALL=(ALL) ALL
设置 user1 ALL=(root) NOPASSWD: /bin/ls,/bin/cat
三部分,
最左边,为用户名,指定哪个用户拥有sudo权利,
中间,等号左边是用户名,即普通用户可以切换到哪个用户的身份,比如,user1 切换到 root
等号右边括号内,指定用户名或主机IP
最右边,设定可使用的命令,写入命令的绝对路径,多个命令用分号隔开。
多个用户组设定
#visudo
找到
## Allows people in group wheel to run all commands
# %wheel ALL=(ALL) ALL
把#去掉,(前面加# 号,表示失效)。
然后在最后面输入
User_Alias USER_SU=user1,user2,user3
Cmnd_Alias SU=/bin/su
USER_SU ALL=(ALL) NOPASSWD: SU
保存退出。
此时可使用user1,2,3 这3个账户登录Linux,执行命令"sudo su -" ,切换到root,获取root账户的所有权利,且不需要输入user的密码。