20180802第三章第一节课
3.1 用户配置文件和密码配置文件( /etc/passwd, /etc/shadow)
3.2 用户组管理(/etc/group,/etc/gshadow)
3.3 用户管理 (Useradd ,userdel ,groupadd ,adduser )
3.4 usermod命令(usermod -u -g -d -s -G)
3.5 用户密码管理(passwd -L -U --stdin)
3.6 mkpasswd命令(mkpasswd -l -s)
3.7 su命令(su - su - - c)
3.8 sudo命令 (sudo -l,/etc/sudoers配置文件)
3.9 限制root远程登录
扩展
sudo与su比较 http://www.apelearn.com/bbs/thread-7467-1-1.html
sudo配置文件样例 www.opensource.apple.com/source/sudo/sudo-16/sudo/sample.sudoers
sudo不错的教程 http://www.jianshu.com/p/51338e41abb7
sudo -i 也可以登录到root吗? http://www.apelearn.com/bbs/thread-6899-1-1.html
3.1 用户配置文件和密码配置文件
[linux@linux-01 ~]$ 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-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
linux:x:1000:1000::/home/linux:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash
用户名:用户密码放在别处了 : UID:gid:用户的注释信息没实质作用:用户的家目录:用户的shell 普通和root都是bin/bash 还有部分是sbin/nologin
[root@linux-01 linux]# cat /etc/shadow
root:$6$bpRtk./Y$mqmMD6cdhtAxbhiLDXrhZ6NY.2GevW2gn4Ks69FulMjeTpqFgpYZQBQmQCeY7eXCiCfzR5ymUSrm1TR/SSjxy1:17313:0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
adm:*:17110:0:99999:7:::
lp:*:17110:0:99999:7:::
sync:*:17110:0:99999:7:::
shutdown:*:17110:0:99999:7:::
halt:*:17110:0:99999:7:::
mail:*:17110:0:99999:7:::
operator:*:17110:0:99999:7:::
games:*:17110:0:99999:7:::
ftp:*:17110:0:99999:7:::
nobody:*:17110:0:99999:7:::
systemd-bus-proxy:!!:17313::::::
systemd-network:!!:17313::::::
dbus:!!:17313::::::
polkitd:!!:17313::::::
tss:!!:17313::::::
postfix:!!:17313::::::
sshd:!!:17313::::::
linux:!!:17313:0:99999:7:::
user1:!!:17313:0:99999:7:::
和passwd是一一对应的,专门控制密码的文件, 用户名:密码可以用明文编译一个密码,不能反过来破译:第三段是天数man shadow
sp_lstchg -
最近更改密码的日期(日期计算方法是从1970年1月1日开始的天数), 第四段 多少天后这个密码才可以修改,第五段sp_max - days after which password must be changed
多少内得更改密码 第六段,sp_warn - days before password is to expire that user is warned of
pending password expiration密码到期前的警告。第七段,密码到期多少天后就不能用了就锁定了,第八段表示账号的生命周期。
[root@linux-01 linux]# passwd linux
更改用户 linux 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@linux-01 linux]# head -n1 /etc/shadow;tail -n2 /etc/shadow
root:$6$bpRtk./Y$mqmMD6cdhtAxbhiLDXrhZ6NY.2GevW2gn4Ks69FulMjeTpqFgpYZQBQmQCeY7eXCiCfzR5ymUSrm1TR/SSjxy1:17313:0:99999:7:::
linux:$6$mBp5FDyC$LPNbqoFAXdLmjOVidBbTSCCs/9cHGh2b.azpnldyqv0VGgCfpd0TYCsI.9W2IaOb7gZeoyg01qKK7948xwGne0:17316:0:99999:7:::
user1:!!:17313:0:99999:7:::
我把root和linux用户设置的密码是一样的,加密后就不一样了。
3.2 用户组管理
[root@linux-01 ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:
cdrom:x:11:
mail:x:12:postfix
man:x:15:
dialout:x:18:
floppy:x:19:
games:x:20:
tape:x:30:
video:x:39:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
utmp:x:22:
utempter:x:35:
ssh_keys:x:999:
input:x:998:
systemd-journal:x:190:
systemd-bus-proxy:x:997:
systemd-network:x:192:
dbus:x:81:
polkitd:x:996:
tss:x:59:
dip:x:40:
postdrop:x:90:
postfix:x:89:
sshd:x:74:
linux:x:1000:
user1:x:1001:
slocate:x:21:
[root@linux-01 ~]# cat /etc/gshadow
root:::
bin:::
daemon:::
sys:::
adm:::
tty:::
postdrop:!::
postfix:!::
sshd:!::
linux:!::
user1:!::
slocate:!::
系统自动的给我们备份了一份文件,如果不小心我们删掉了,可以拷贝这个文件。
[root@linux-01 ~]# ls -l /etc/passwd*
-rw-r--r--. 1 root root 1048 5月 28 02:54 /etc/passwd
-rw-r--r--. 1 root root 1007 5月 28 02:53 /etc/passwd-
[root@linux-01 ~]# groupadd grp1
[root@linux-01 ~]# tail -n1 /etc/group
grp1:x:1002:
[root@linux-01 ~]# groupadd -g 1005 grp2
[root@linux-01 ~]# tail -n3 /etc/group
slocate:x:21:
grp1:x:1002:
grp2:x:1005:
可以指定组ID,7版本的组ID要从1000开始了,6是从500开始的
[root@linux-01 ~]# groupdel grp1
[root@linux-01 ~]# tail -3 /etc/group
user1:x:1001:
slocate:x:21:
grp2:x:1005:
[root@linux-01 ~]# groupdel user1
groupdel:不能移除用户“user1”的主组
想删除一个组前提是这组里面没有人。
3.3 用户管理
[root@linux-01 ~]# useradd user2
[root@linux-01 ~]# tail -n2 /etc/passwd
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
普通用户创建用户的UID是从1000开始的,我们可以自定义UID
[root@linux-01 ~]# useradd -u 1004 -g grp2 user3
[root@linux-01 ~]# tail -n2 /etc/passwd
user2:x:1002:1002::/home/user2:/bin/bash
user3:x:1004:1005::/home/user3:/bin/bash
1005怎么来的呢
[root@linux-01 ~]# tail -n 3 /etc/group
slocate:x:21:
grp2:x:1005:
user2:x:1002:
可以指定家目录和shell吗
[root@linux-01 ~]# useradd -u 1006 -g grp2 -d /home/zhang -s /sbin/nologin user4
[root@linux-01 ~]# tail -n3 /etc/passwd
user2:x:1002:1002::/home/user2:/bin/bash
user3:x:1004:1005::/home/user3:/bin/bash
user4:x:1006:1005::/home/zhang:/sbin/nologin
创建用户的同时,指定不创建家目录,有家目录只是没有创建而已。
[root@linux-01 ~]# ls /home/
user1 user2 user3 zhang linux
[root@linux-01 ~]# useradd -M user5
[root@linux-01 ~]# tail -n3 /etc/passwd
user3:x:1004:1005::/home/user3:/bin/bash
user4:x:1006:1005::/home/zhang:/sbin/nologin
user5:x:1007:1007::/home/user5:/bin/bash
[root@linux-01 ~]# ls /home/
user1 user2 user3 zhang linux
如果不指定UID会自动增加,如果指定了,会从指定的开始增加
[root@linux-01 ~]# tail -n5 /etc/passwd
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
user3:x:1004:1005::/home/user3:/bin/bash
user4:x:1006:1005::/home/zhang:/sbin/nologin
user5:x:1007:1007::/home/user5:/bin/bash
[root@linux-01 ~]# groupadd -g 1010 grp4
[root@linux-01 ~]# useradd -g grp4 user6
[root@linux-01 ~]# tail -n5 /etc/passwd
user2:x:1002:1002::/home/user2:/bin/bash
user3:x:1004:1005::/home/user3:/bin/bash
user4:x:1006:1005::/home/zhang:/sbin/nologin
user5:x:1007:1007::/home/user5:/bin/bash
user6:x:1008:1010::/home/user6:/bin/bash
[root@linux-01 ~]# useradd user7
[root@linux-01 ~]# tail -n5 /etc/passwd
user3:x:1004:1005::/home/user3:/bin/bash
user4:x:1006:1005::/home/zhang:/sbin/nologin
user5:x:1007:1007::/home/user5:/bin/bash
user6:x:1008:1010::/home/user6:/bin/bash
user7:x:1009:1009::/home/user7:/bin/bash
gid不会自动的动创建的开始增加
useradd adduser 一样的
[root@linux-01 ~]# userdel user7
[root@linux-01 ~]# tail -n3 /etc/passwd
user4:x:1006:1005::/home/zhang:/sbin/nologin
user5:x:1007:1007::/home/user5:/bin/bash
user6:x:1008:1010::/home/user6:/bin/bash
[root@linux-01 ~]# ls /home/
user1 user2 user3 user6 user7 zhang linux
家目录没有删掉,这任务留给管理员,先看看还有没有用
有没有可能直接家目录一起删掉呢有的需要加-r
[root@linux-01 ~]# userdel -r user6
[root@linux-01 ~]# ls /home/
user1 user2 user3 zhang linux
3.4 usermod命令
更改用户的属性
[root@linux01 ~]# usermod -u 111 username^C 指定用户
[root@linux01 ~]# usermod -g 123 username^C 指定组
[root@linux01 ~]# usermode -g mingzi username^C指定组
[root@linux01 ~]# usermode -d /home/ddf username^C 指定家目录
[root@linux01 ~]# usermode -s /sbin/nologin username^C 指定shell
[root@linux01 ~]# useradd -G 扩展组
[root@linux01 ~]# id zhang 一个用户可以有多个组 扩展组,只有一个gid
uid=1000(zhang) gid=1000(zhang) 组=1000(zhang)
[root@linux01 ~]# usermod -G root zhang
[root@linux01 ~]# id zhang
uid=1000(zhang) gid=1000(zhang) 组=1000(zhang),0(root)
[root@linux01 ~]# usermod -G root zhang1
[root@linux01 ~]# id zhang
uid=1000(zhang) gid=1000(zhang) 组=1000(zhang1),0(root)
都享有的话
[root@linux01 ~]# usermod -G root,zhang1 zhang
用小g只允许一个组
3.5 用户密码管理
[root@linux01 ~]# passwd
更改用户 root 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
有个特殊权限 passwd set_uid root用普通更改自己的密码。
[root@linux01 ~]# passwd zhang
更改用户 zhang 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
改完密码可以看到一串加密字符串
[root@linux01 ~]# tail /etc/shadow
nobody:*:17110:0:99999:7:::
systemd-bus-proxy:!!:17713::::::
systemd-network:!!:17713::::::
dbus:!!:17713::::::
polkitd:!!:17713::::::
tss:!!:17713::::::
postfix:!!:17713::::::
sshd:!!:17713::::::
chrony:!!:17713::::::
zhang:$6$NyjOssFN$UMnZ65qjPPUpyplM3MdmH5vc5yfF3c/lO0Se8x4NPsYvDoE.ulJzF3hQMC6Nu6xoipNlOogUn7g4AT8hr7iCL/:17734:0:99999:7:::
如果没密码是!! , * 是锁定的不能登录的 不能登录
[root@linux01 ~]# passwd -l zhang 意识是lock锁定
锁定用户 zhang 的密码 。
passwd: 操作成功
[root@linux01 ~]# tail /etc/shadow
nobody:*:17110:0:99999:7:::
systemd-bus-proxy:!!:17713::::::
systemd-network:!!:17713::::::
dbus:!!:17713::::::
polkitd:!!:17713::::::
tss:!!:17713::::::
postfix:!!:17713::::::
sshd:!!:17713::::::
chrony:!!:17713::::::
zhang:!!$6$NyjOssFN$UMnZ65qjPPUpyplM3MdmH5vc5yfF3c/lO0Se8x4NPsYvDoE.ulJzF3hQMC6Nu6xoipNlOogUn7g4AT8hr7iCL/:17734:0:99999:7:::
[root@linux01 ~]# passwd -u zhang 意思是unlock 解锁
解锁用户 zhang 的密码。
passwd: 操作成功
[root@linux01 ~]# tail /etc/shadow
nobody:*:17110:0:99999:7:::
systemd-bus-proxy:!!:17713::::::
systemd-network:!!:17713::::::
dbus:!!:17713::::::
polkitd:!!:17713::::::
tss:!!:17713::::::
postfix:!!:17713::::::
sshd:!!:17713::::::
chrony:!!:17713::::::
zhang:$6$NyjOssFN$UMnZ65qjPPUpyplM3MdmH5vc5yfF3c/lO0Se8x4NPsYvDoE.ulJzF3hQMC6Nu6xoipNlOogUn7g4AT8hr7iCL/:17734:0:99999:7:::
[root@linux01 ~]# usermod -L zhang 锁定
[root@linux01 ~]# tail /etc/shadow
nobody:*:17110:0:99999:7:::
systemd-bus-proxy:!!:17713::::::
systemd-network:!!:17713::::::
dbus:!!:17713::::::
polkitd:!!:17713::::::
tss:!!:17713::::::
postfix:!!:17713::::::
sshd:!!:17713::::::
chrony:!!:17713::::::
zhang:!$6$NyjOssFN$UMnZ65qjPPUpyplM3MdmH5vc5yfF3c/lO0Se8x4NPsYvDoE.ulJzF3hQMC6Nu6xoipNlOogUn7g4AT8hr7iCL/:17734:0:99999:7:::
[root@linux01 ~]# usermod -U zhang 解锁
[root@linux01 ~]# tail /etc/shadow
nobody:*:17110:0:99999:7:::
systemd-bus-proxy:!!:17713::::::
systemd-network:!!:17713::::::
dbus:!!:17713::::::
polkitd:!!:17713::::::
tss:!!:17713::::::
postfix:!!:17713::::::
sshd:!!:17713::::::
chrony:!!:17713::::::
zhang:$6$NyjOssFN$UMnZ65qjPPUpyplM3MdmH5vc5yfF3c/lO0Se8x4NPsYvDoE.ulJzF3hQMC6Nu6xoipNlOogUn7g4AT8hr7iCL/:17734:0:99999:7:::
还可以改密码
[root@linux01 ~]# passwd --stdin zhang
更改用户 zhang 的密码 。
758679
passwd:所有的身份验证令牌已经成功更新。
可以用到shell脚本里面
[root@linux01 ~]# echo "112233" |passwd --stdin zhang
更改用户 zhang 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@linux01 ~]# echo -e "123456\nsssss"
123456
sssss
[root@linux01 ~]# echo -e "123456\tsssss"
123456 sssss
[root@linux01 ~]# echo -e "123456/n123456" |passwd zhang
3.6 mkpasswd命令
mkpasswd =make password
[root@linux01 ~]# mkpasswd 可以随机生成一个字符串是密码
-bash: mkpasswd: 未找到命令
[root@linux01 ~]# yum install -y expect
kepass可以生成一个高强度的密码,但是还要打开软件,所以 mkpasswd很方便,随机生成
[root@linux01 ~]# mkpasswd
2ZdwH7]fl
9位的 可以指定长度、
[root@linux01 ~]# mkpasswd -l 12 指定十二位
1hpWN3k&hyaw
还可以指定特殊符号几个,也可以指定没有特殊符号
[root@linux01 ~]# mkpasswd -l 12 -s 3
kA=}Y"edw42k
[root@linux01 ~]# mkpasswd -l 13 -s 0
tfmycw3VQ1qte
可以创建100个用户随机生成100个密码记录,把密码记录在一个文档文件里
3.7 su命令
su 切换用户
[root@linux01 ~]# su - zhang
上一次登录:日 7月 22 14:56:03 CST 2018pts/0 上
[zhang@linux01 ~]$ whoami
zhang
[zhang@linux01 ~]$ id
uid=1000(zhang) gid=1000(zhang) 组=1000(zhang),0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
可以用whoami id 看下在哪个用户下
su - zhang 加-是彻底切换用户包括配置环境变量等。
[root@linux01 ~]# ls
11.txt 3.txt anaconda-ks.cfg
[root@linux01 ~]# su zhang
[zhang@linux01 root]$
不加-是可以的,但没完全切换过来还在root目录下。如果加上-会切换到自己的家目录下,加载自己家目录下的配置文件
[zhang@linux01 root]$ pwd
/root
[zhang@linux01 root]$ su
密码:
[root@linux01 ~]# su - zhang
[zhang@linux01 ~]$ whoami
zhang
[zhang@linux01 ~]$ pwd
/home/zhang
还可以以什么的用户执行什么命令
[root@linux01 ~]# whoami
root
[root@linux01 ~]# su - -c "touch /tmp/zhang.111" zhang
[root@linux01 ~]# ls -lt /tmp/ |head
总用量 0
-rw-rw-r--. 1 zhang zhang 0 7月 28 13:12 zhang.111
drwx------. 3 root root 17 7月 26 20:54 systemd-private-48f63b3ca3874efe82c656f9407a2214-chronyd.service-46WRf2
drwx------. 2 root root 6 7月 26 20:52 vmware-root
以zhang 用户创建文件。
[root@linux01 ~]# id zhang
uid=1000(zhang) gid=1000(zhang) 组=1000(zhang),0(root)
如果ZHANG用户的主组是什么 那新建文件的主组就是什么
[root@linux01 ~]# date
2018年 07月 28日 星期六 13:15:27 CST
可以从一个普通用户切换到另外一个普通用户
[root@linux01 ~]# su - zhang
上一次登录:六 7月 28 13:12:48 CST 2018pts/0 上
[zhang@linux01 ~]$ whoami
zhang
[zhang@linux01 ~]$ su - zhang1
密码:
[zhang1@linux01 ~]$ whoami
zhang1
如果没有家目录会导致
[zhang1@linux01 ~]$ mkdir /home/user5 创建家目录
此时还是同样的问题,因为没有配置文件
像有家目录的文件 配置文件
[zhang1@linux01 ~]$ ls -la
总用量 12
drwx------. 2 zhang1 zhang1 62 7月 28 13:16 .
drwxr-xr-x. 4 root root 33 7月 28 13:16 ..
-rw-r--r--. 1 zhang1 zhang1 18 4月 11 08:53 .bash_logout
-rw-r--r--. 1 zhang1 zhang1 193 4月 11 08:53 .bash_profile
-rw-r--r--. 1 zhang1 zhang1 231 4月 11 08:53 .bashrc
那怎么建议把配置文件搞出来,系统有个模板目录在
[zhang1@linux01 ~]$ ls -la /etc/skel/
总用量 24
drwxr-xr-x. 2 root root 62 4月 11 12:59 .
drwxr-xr-x. 78 root root 8192 7月 28 13:16 ..
-rw-r--r--. 1 root root 18 4月 11 08:53 .bash_logout
-rw-r--r--. 1 root root 193 4月 11 08:53 .bash_profile
-rw-r--r--. 1 root root 231 4月 11 08:53 .bashrc
可以把后面这三个文件拷贝到刚才创建的家目录下
然后更改所属组主
普通用户显示的$ root显示的是#
ctrl+d 退出来
[root@linux01 ~]# whoami
root
[root@linux01 ~]# su - zhang
上一次登录:六 7月 28 13:29:08 CST 2018pts/0 上
[zhang@linux01 ~]$ whoami
zhang
[zhang@linux01 ~]$ su -
密码:
上一次登录:六 7月 28 13:12:12 CST 2018pts/0 上
同时普通用户如果知道root密码也可以切到root
3.8 sudo命令
su可以让普通用户进入到root用户下,前提是知道root的密码,如果给root密码,那肯定就直接登root 不用登普通用户了,所以多余了, 所以这里 sudo 让普通用户可以执行root用户命令,
给普通用户授权root用户身份,
我们用visudo 这个命令打开 其实打开是/etc/sudoers.tmp 不建议直接用vim 编辑这个文件,因为检查不到语法错误, 而visudo就可以检查到语法错误。
找到这一行
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
加一行
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
zhang ALL=(ALL) ls,mv,cat
用户 用户 命令
会提示错误
visudo:>>> /etc/sudoers:syntax error 在行 92 附近<<<
按回车会提示操作 根据提示我们选E编辑 ,为了看到是否是92行,:nu 可以看到行号
最终编辑成
0 ## Allow root to run any commands anywhere
91 root ALL=(ALL) ALL
92 zhang ALL=(ALL) /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
保存退出然后
[zhang@linux01 ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够
[zhang@linux01 ~]$ sudo /usr/bin/ls /root/
[sudo] password for zhang:
anaconda-ks.cfg
[zhang@linux01 ~]$ cat /root/3.txt
cat: /root/3.txt: 权限不够
[zhang@linux01 ~]$ sudo /usr/bin/cat /root/3.txt
/usr/bin/cat: /root/3.txt: 没有那个文件或目录
这样可以单独制定某一些命令,
我们课不可以不用输入密码 设置
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
zhang ALL=(ALL) NOPASSWD: /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
zhang@linux01 ~]$ sudo ls /root/
anaconda-ks.cfg
sudo可以加决对路径可以不加。
visudo 可以设置很多 像别名# Host_Alias FILESERVERS = fs1, fs2
# Host_Alias MAILSERVERS = smtp, smtp2
虚拟用户# User_Alias ADMINS = jsmith, mikem
命令别名# Cmnd_Alias
我们可以防着上面做一个别名
# 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
Cmnd_Alias ZHANG_GMD = /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
然后把更长的的编辑用别名代替 zhang ALL=(ALL) ZHANG_GMD
用户组做限制
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
3.9 限制root远程登录
root 用户不能登录了,只允许普通用户
防着# User_Alias ADMINS = jsmith, mikem
做一个用户组。
加一个权限这里我没有建组直接zhang用户
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
zhang ALL=(ALL) NOPASSWD: /usr/bin/su
这样切换到zhang不用密码
[root@linux01 ~]# su - zhang
上一次登录:一 7月 16 22:44:10 CST 2018pts/0 上
[zhang@linux01 ~]$ sudo su -
上一次登录:一 7月 16 23:00:14 CST 2018从 192.168.253.1pts/0 上
我们做此操作的前提是限制root登录,如果可以登录我们就不用做这个了
[root@linux01 ~]# vi /etc/ssh/sshd_config
搜索 /Root 第一行就是我们想要的
#PermitRootLogin yes
我们把注释去掉 把YES改成NO
PermitRootLogin no
改完后重启服务
[root@linux01 ~]# systemctl restart sshd.service
重新登录就登录不进去了
我们登录zhng 用户 然后
[zhang@linux01 ~]$ sudo su - root
上一次登录:一 7月 16 23:09:54 CST 2018pts/0 上
最后一次失败的登录:一 7月 16 23:17:11 CST 2018从 192.168.253.1ssh:notty 上
最有一次成功登录后有 1 次失败的登录尝试。
为了方便做实验我们需要把刚才不允许登录还原成原来的然后重启
扩展
sudo与su比较 http://www.apelearn.com/bbs/thread-7467-1-1.html
1使用 su 命令临时切换用户身份
虽然su很方便,su 对切换到超级权限用户root后,权限的无限制性,不安全,
2sudo 授权许可使用的su,也是受限制的su
sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码,比较安全。
sudo配置文件样例 www.opensource.apple.com/source/sudo/sudo-16/sudo/sample.sudoers
sudo不错的教程 http://www.jianshu.com/p/51338e41abb7
sudo -i 也可以登录到root吗? http://www.apelearn.com/bbs/thread-6899-1-1.html
sudo su - 约等于 sudo -i
sudo -s 完全等于 sudo /bin/bash 约等于 sudo su
sudo 终究被一个"临时权限的帽子"扣住,不能等价于纯粹的登录到系统里。

浙公网安备 33010602011771号