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 终究被一个"临时权限的帽子"扣住,不能等价于纯粹的登录到系统里。

 

posted @ 2018-08-02 09:50  Linux操作系统爱好者  阅读(91)  评论(0)    收藏  举报