[root@aming01 ~]# ls /etc/passwd
/etc/passwd
[root@aming01 ~]# cat !$
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
user1:x:1000:1000::/home/user1:/bin/bash
我们不需要显示那么多的话,可以执行下列命令
如果想在一行输入两条命令,中间可以用分号隔开
[root@aming01 ~]# head -2 /etc/passwd;tail -3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
user1:x:1000:1000::/home/user1:/bin/bash
我们来看每个字段都是什么含义,例如
root:x:0:0:root:/root:/bin/bash
第1个字段是用户名(第1行的root就是用户名);
第2个字段中都是x,存放的是用户的密码;
第3个字段是一个数字,表示uid;
第4个字段也是一个数字,表示gid;
第5个字段为注释信息,没有实质意义;
第6个字段是用户的家目录,root的家目录是/root,普通用户的家目录是/home/user3;
最后一个字段是用户的shell,/bin/bash表示可以登录,/sbin/nologin表示不能登录。
[root@aming01 ~]# head -2 /etc/shadow;tail -3 /etc/shadow
root:$6$o/4DUs/2$oF/dyzUGno1Rm6.9u/u1cZlqingy6rPEgFJEIc6YuSBcxueVI4.J.Fat6XmeMnwA3NNYwJqNQVe/zFANF9QnH.:17660:0:99999:7:::
bin:*:17110:0:99999:7:::
postfix:!!:17645::::::
sshd:!!:17645::::::
user1:!!:17665:0:99999:7:::
第1个字段为用户名;
第2字段为用户密码,该密码是加密的;
第3个字段为上次更改密码的日期(从1970-1-1开始计算);
第4个字段为要过多少天可以更改密码,默认为0;
第5个字段为密码多少天后必须更改,默认为99999,即不需更改;
第6个字段为密码到期前的警告期限;
第7个字段为账号失效期限;
第8个字段为账号的生命周期;最后一个字段作为保留用的,无实际意义。
[root@aming01 ~]# groupadd nihao
[root@aming01 ~]# tail -3 /etc/group
sshd:x:74:
user1:x:1000:
nihao:x:1001:
-g选项:可以定义gid,CentOS7默认从1000开始,CentOS默认从500开始
[root@aming01 ~]# groupadd -g 1005 nihao
[root@aming01 ~]# tail -3 /etc/group
sshd:x:74:
user1:x:1000:
nihao:x:1005:
[root@aming01 ~]# tail -3 /etc/group
sshd:x:74:
user1:x:1000:
nihao:x:1005:
[root@aming01 ~]# groupdel nihao
[root@aming01 ~]# tail -3 /etc/group
postfix:x:89:
sshd:x:74:
user1:x:1000:
[root@aming01 ~]# groupdel nihao
groupdel:不能移除用户“user2”的主组
[root@aming01 ~]# userdel user2
[root@aming01 ~]# groupdel nihao
[root@aming01 ~]# tail -3 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
user1:x:1000:1000::/home/user1:/bin/bash
[root@aming01 ~]# groupdel nihao
groupdel:“nihao”组不存在
-u:表示自定义uid;
[root@aming01 ~]# useradd -u 1005 user2
[root@aming01 ~]# tail -3 /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
user1:x:1000:1000::/home/user1:/bin/bash
user2:x:1005:1005::/home/user2:/bin/bash
-g:表示指定所属组;
[root@aming01 ~]# tail -3 /etc/group
sshd:x:74:
user1:x:1000:
nihao:x:1001:
[root@aming01 ~]# useradd -u 1004 -g nihao user3
[root@aming01 ~]# tail -3 /etc/passwd
user1:x:1000:1000::/home/user1:/bin/bash
user2:x:1001:1001::/home/user2:/bin/bash
user3:x:1004:1001::/home/user3:/bin/bash
-d:表示自定义用户的家目录;
-s:表示自定义shell;
-M:表示不建立家目录,虽然能在/etc/passwd文件能看到,但如果你用ls /hone/user7查看,会提示该目录不存在,所以 -M 的作用就是不创建那个目录
[root@aming01 ~]# useradd -M user3
正在创建信箱文件: 文件已存在
[root@aming01 ~]# ^C
[root@aming01 ~]# rm -rf /var/spool/mail/user3 #删除信箱文件
[root@aming01 ~]# useradd -M user3
useradd:用户“user3”已存在
[root@aming01 ~]# rm -rf /var/spool/mail/user3 #删除信箱文件
[root@aming01 ~]# userdel user3
[root@aming01 ~]# useradd -M user3
[root@aming01 ~]# tail -3 /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
user1:x:1000:1000::/home/user1:/bin/bash
user3:x:1001:1001::/home/user3:/bin/bash
[root@aming01 ~]# ls /home/user3
[root@aming01 ~]# ls /home/
user1 user2 user3
加-r选项:删除用户时,连同用户的家目录也删除
[root@aming01 ~]# useradd user4
[root@aming01 ~]# ls /home/
user1 user2 user3 user4
[root@aming01 ~]# userdel user3
[root@aming01 ~]# ls /home/
user1 user2 user3 user4
[root@aming01 ~]# userdel -r user4
[root@aming01 ~]# ls /home/
user1 user2 user3
-u: 更改用户的uid;
[root@aming01 ~]# tail -3 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
user1:x:1000:1000::/home/user1:/bin/bash
[root@aming01 ~]# usermod -u 1001 user1
[root@aming01 ~]# tail -3 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
user1:x:1001:1000::/home/user1:/bin/bash
-g: 更改用户的gid或组名;该gid必须存在,才能使用
[root@aming01 ~]# tail -3 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
user1:x:1001:1000::/home/user1:/bin/bash #uid为1001,gid为1000
[root@aming01 ~]# groupadd -g 1005 grp1
[root@aming01 ~]# tail -3 /etc/group
sshd:x:74:
user1:x:1000:
grp1:x:1005:
[root@aming01 ~]# usermod -g 1005 user1
[root@aming01 ~]# tail -3 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
user1:x:1001:1005::/home/user1:/bin/bash
-d: 更改用户的家目录;
[root@aming01 ~]# tail -3 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
user1:x:1001:1005::/home/user1:/bin/bash
[root@aming01 ~]# usermod -d /home/qwe user1
[root@aming01 ~]# tail -3 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
user1:x:1001:1005::/home/qwe:/bin/bash
-s: 更改用户的shell;
[root@aming01 ~]# tail -3 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
user1:x:1001:1005::/home/qwe:/bin/bash
[root@aming01 ~]# usermod -s /sbin/nologin user1
[root@aming01 ~]# tail -3 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
user1:x:1001:1005::/home/qwe:/sbin/nologin
-G:添加扩展组;把用户追加到某些组里,可以追加到多个组中,每个组之间用“,”隔开
[root@aming01 ~]# id user1
uid=1001(user1) gid=1005(grp1) 组=1005(grp1)
[root@aming01 ~]# tail -3 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
user1:x:1001:1005::/home/qwe:/sbin/nologin
[root@aming01 ~]# usermod -G grp2,grp3 user1
[root@aming01 ~]# id user1
uid=1001(user1) gid=1005(grp1) 组=1005(grp1),1006(grp2),1007(grp3)
-L: 锁定用户密码(被锁定的密码前面会有个感叹号 ! );passwd -L username
[root@aming01 ~]# usermod -L user1
[root@aming01 ~]# tail -2 /etc/shadow
sshd:!!:17645::::::
user1:!$6$8lSPJbls$4wi.wif.Zr5E36uQEtiZaxhUvl7/reDZLYe6E4mJVxKV.nA2p/jub951uncu4elTDsH4Y.YnR4l/YKlTiOYpH0:17670:0:99999:7:::
-U: 解锁用户密码;passwd -U username (感叹号消失)
[root@aming01 ~]# tail -2 /etc/shadow
sshd:!!:17645::::::
user1:!$6$8lSPJbls$4wi.wif.Zr5E36uQEtiZaxhUvl7/reDZLYe6E4mJVxKV.nA2p/jub951uncu4elTDsH4Y.YnR4l/YKlTiOYpH0:17670:0:99999:7:::
[root@aming01 ~]# usermod -U user1
[root@aming01 ~]# tail -2 /etc/shadow
sshd:!!:17645::::::
user1:$6$8lSPJbls$4wi.wif.Zr5E36uQEtiZaxhUvl7/reDZLYe6E4mJVxKV.nA2p/jub951uncu4elTDsH4Y.YnR4l/YKlTiOYpH0:17670:0:99999:7:::
-l :修改用户的登录名称
[root@aming01 ~]# tail -2 /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
user1:x:1001:1005::/home/qwe:/bin/bash
[root@aming01 ~]# usermod -l hhh user1
[root@aming01 ~]# tail -2 /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
hhh:x:1001:1005::/home/qwe:/bin/bash
可以在更改密码时,不用二次确认
常在脚本用的方法:echo "12345678" |passwd --stdin 用户名
[root@aming01 ~]# yum install -y expect
已加载插件:fastestmirror
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
updates/7/x86_64/primary_db FAILED
http://mirrors.shu.edu.cn/centos/7.5.1804/updates/x86_64/repodata/49393589ab8a009b0ba01a63645404ff021ec1321a45aa289ff6a16cae46e662-primary.sqlite.bz2: [Errno 14] curl#7 - "Failed connect to mirrors.shu.edu.cn:80; Connection refused"
正在尝试其它镜像。
-l:生成指定长度的密码;
[root@aming01 ~]# mkpasswd -l 10
ywebh6MB5{
-s:指定密码中有几个特殊字符;
[root@aming01 ~]# mkpasswd -l 10 -s 3
*gt]F57
-d:指定生成数字的个数
[root@aming01 ~]# mkpasswd -l 10 -d 5
i64a9;75EV
-c :指定生成小写字母的个数
[root@aming01 ~]# mkpasswd -l 10 -c 5
UTs-y6hr3r
-C:指定生成大写字母的个数
[root@aming01 ~]# mkpasswd -l 10 -C 5
S1D'6ZauIZ
[root@aming01 ~]# useradd su1
[root@aming01 ~]# su su1
[su1@aming01 root]$ pwd
/root
[su1@aming01 root]$ su
密码:
[root@aming01 ~]# pwd
/root
[root@aming01 ~]# su - su1
上一次登录:日 5月 20 21:42:43 CST 2018pts/0 上
[su1@aming01 ~]$ pwd
/home/su1
[root@aming01 ~]# su hhh
bash-4.2$
[root@aming01 ~]# groupadd hhh
[root@aming01 ~]# mkdir /home/hhh
mkdir: 无法创建目录"/home/hhh": 文件已存在
[root@aming01 ~]# chown hhh:hhh /home/hhh
[root@aming01 ~]# ls -la /etc/skel/
总用量 24
drwxr-xr-x. 2 root root 62 4月 24 23:32 .
drwxr-xr-x. 74 root root 8192 5月 20 21:53 ..
-rw-r--r--. 1 root root 18 8月 3 2017 .bash_logout
-rw-r--r--. 1 root root 193 8月 3 2017 .bash_profile
-rw-r--r--. 1 root root 231 8月 3 2017 .bashrc
[root@aming01 ~]# cp /etc/skel/.bash* /home/hhh
[root@aming01 ~]# chown -R hhh:hhh /home/hhh
[root@aming01 ~]# su - -c "touch /tmp/sss" hhh
[root@aming01 ~]# ls -l /tmp
总用量 116
lrwxrwxrwx. 1 root root 7 5月 16 06:09 hhh1.log -> yum.log
-rw-r--r--. 1 root root 0 5月 16 06:07 hhh.log
-rwxr-xr-x. 1 root root 117656 5月 14 05:40 ls2
-rw-r--r--. 1 hhh grp1 0 5月 20 21:59 sss
[root@aming01 ~]# visudo
执行visudo命令后,找到:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
在这行下面添加,表示user1用户可以在所有终端上以root权限运行所有命令
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
user1 ALL=(ALL) ALL
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
user1 ALL=(ALL) /usr/bin/ls, /usr/bin/cd, /usr/bin/cat
## User Aliases
## These aren't often necessary, as you can use regular groups
## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname
## rather than USERALIAS
# User_Alias ADMINS = jsmith, mikem
在下方添加添加
User_Alias Users = user1, user2
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
user1 ALL=(ALL) NOPASSWD: /usr/bin/ls, /usr/bin/cd, /usr/bin/cat
26 ## Networking
27 # Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables , /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
28 Cmnd_Alias USER_CMD= /usr/binls, /usr/bin/cd, /usr/bin/cat
29 ## Installation and management of software
30 # Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
user1 ALL=(ALL) USER_CMD
89 ## The COMMANDS section may have other options added to it.
90 ##
91 ## Allow root to run any commands anywhere
92 root ALL=(ALL) ALL
93
94 ## Allows members of the 'sys' group to run networking, software,
95 ## service management apps and more.
96 # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
97
:set nu
编辑/etc/ssh/sshd_config配置文件,找到:
[root@aming01 ~]# vi /etc/ssh/sshd_config
# Authentication:
修改配置文件/etc/ssh/sshd_config
[root@aming01 ~]# vi /etc/ssh/sshd_config
找到:
# Authentication:
#LoginGraceTime 2m
#PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
将#PermitRootLogin yes修改为PermitRootLogin no,保存文件,重启sshd服务
[root@aming01 ~]# systemctl restart sshd.service
sudo与su比较:http://www.apelearn.com/bbs/thread-7467-1-1.html
sudo配置文件样例:www.opensource.apple.com/source/sudo/sudo-16/sample.sudoers
sudo不错的教程 http://www.jianshu.com/p/51338e41abb7
sudo -i也可以登录到root吗 http://www.apelearn.com/bbs/thread-6899-1-1.html