Linux 用户管理_015

一、用户基础了解

  Linux是一个多任务、多用户的操作系统,每个用户和进程都需要对应一个用户和用户组,用户名相当于姓名,

用户UID相当于身份证号,用户组GID相当于公司的工号。用户与用户组的关系一对一、多对一、一对多、多对多。

Linux系统用户分类:

1、 超级用户root

root(超级管理员),UID为0,拥有最高的权限,类似windows系统的administrator本地管理员。

root可以使用sudo管理提权给普通用户使用,相当于分配特殊权限给普通用户使用。

2、 虚拟用户

虚拟用户,UID为1~499,虚拟用户一般与系统和程序服务相关,一般是默认不能登录系统使用。

3、 普通用户

一般是由具备系统管理员root权限用户所创建,UID为500~65535,这类用户的权限会受到一定的基本权限限制,一般来自具备管理员用户的限制。

当创建一个用户,以下配置文件会被修改

用户配置文件         /etc/passwd

用户密码配置文件     /etc/shadow

用户组配置文件       /etc/group

用户组密码配置文件   /etc/gshadow

二、用户管理命令

命令

功能描述

useradd

创建用户

userdel

删除用户

passwd

修改用户密码

usermod

修改用户信息

id

查看用户UID和GID

chage

修改用户密码属性,管理/etc/shadow文件

groupadd

创建用户组

groupdel

删除用户组

whoami

查看当前用户名

w

查看当前用户登录系统信息并且查看用户正在做操作什么

who

查看当前用户登录系统信息

last

以清单形式显示用户登录系统信息(包括历史记录)

lastlog

查看所有用户或指定用户的登录系统信息

su

切换用户

sudo

sudo是通过另一个用户来执行命令,su是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo能在命令后面直接接命令执行,比如sudo  ls /root  , 不需要root密码就可以执行只有root才能执行相应的命令或具备的目录权限:这个权限需要通过visudo命令或者直接编辑/etc/sudoers来实现

visudo

visodo配置sudo权限的编辑命令,也可以不用这个命令,直接用vi来编辑/etc/sudoers实现,但推荐用visudo来操作(会自动检查语法)

三、用户初始化目录skel

  /etc/skel目录是用来存放新用户环境变量文件的目录,当我们添加新用户时,这个目录下的所有文件会自动被复制到新添加

用户的家目录下,默认情况下,/etc/skel目录下的所有文件都是隐藏文件(以点.开头的文件),通过修改、添加、删除/etc/skel

目录下的文件,我们可为新创建的用户提供统一的、标准的、初始化用户环境。

[root@oldboy ~]# su - oldboy

[oldboy@oldboy ~]$ ls -la

total 28

drwx------  2 oldboy oldboy 4096 Dec 14 08:51 .

drwxr-xr-x. 8 root   root   4096 Dec 13 15:41 ..

-rw-------  1 oldboy oldboy  459 Dec 14 15:04 .bash_history

-rw-r--r--  1 oldboy oldboy   18 Dec 14 08:51 .bash_logout

-rw-r--r--  1 oldboy oldboy  176 Dec 14 08:51 .bash_profile

-rw-r--r--  1 oldboy oldboy  124 Dec 14 08:51 .bashrc

-rw-------  1 oldboy oldboy  802 Nov 28 14:17 .viminfo

[oldboy@oldboy ~]$ ls -ld /etc/skel/

drwxr-xr-x. 2 root root 4096 Sep  7 17:13 /etc/skel/

[oldboy@oldboy ~]$ ls -la /etc/skel/

total 20

drwxr-xr-x.  2 root root 4096 Sep  7 17:13 .

drwxr-xr-x. 83 root root 4096 Dec 14 14:35 ..

-rw-r--r--.  1 root root   18 Jul 24  2015 .bash_logout

-rw-r--r--.  1 root root  176 Jul 24  2015 .bash_profile

-rw-r--r--.  1 root root  124 Jul 24  2015 .bashrc

/etc/skel的企业场景作用:

1、 可以把通知的内容放到shell,让登录的用户查看

[root@oldboy ~]# ls -la /etc/skel/

total 20

drwxr-xr-x.  2 root root 4096 Sep  7 17:13 .

drwxr-xr-x. 83 root root 4096 Dec 14 14:35 ..

-rw-r--r--.  1 root root   18 Jul 24  2015 .bash_logout

-rw-r--r--.  1 root root  176 Jul 24  2015 .bash_profile

-rw-r--r--.  1 root root  124 Jul 24  2015 .bashrc

[root@oldboy ~]# touch /etc/skel/info.txt

[root@oldboy ~]# echo "Linux CentOS 6.7" > /etc/skel/info.txt

[root@oldboy ~]# ls -la /etc/skel/

total 24

drwxr-xr-x.  2 root root 4096 Dec 14 15:07 .

drwxr-xr-x. 83 root root 4096 Dec 14 14:35 ..

-rw-r--r--.  1 root root   18 Jul 24  2015 .bash_logout

-rw-r--r--.  1 root root  176 Jul 24  2015 .bash_profile

-rw-r--r--.  1 root root  124 Jul 24  2015 .bashrc

-rw-r--r--   1 root root   17 Dec 14 15:08 info.txt

[root@oldboy ~]# cat /etc/skel/info.txt

Linux CentOS 6.7

[root@oldboy ~]# useradd xiaoming

root@oldboy ~]# passwd xiaoming

Changing password for user xiaoming.

New password:

BAD PASSWORD: it is too simplistic/systematic

BAD PASSWORD: is too simple

Retype new password:

passwd: all authentication tokens updated successfully.

[root@oldboy ~]# su - xiaoming

[xiaoming@oldboy ~]$ ls -la .

total 24

drwx------  2 xiaoming xiaoming 4096 Dec 14 15:09 .

drwxr-xr-x. 9 root     root     4096 Dec 14 15:09 ..

-rw-r--r--  1 xiaoming xiaoming   18 Jul 24  2015 .bash_logout

-rw-r--r--  1 xiaoming xiaoming  176 Jul 24  2015 .bash_profile

-rw-r--r--  1 xiaoming xiaoming  124 Jul 24  2015 .bashrc

-rw-r--r--  1 xiaoming xiaoming   17 Dec 14 15:08 info.txt

[xiaoming@oldboy ~]$ cat info.txt

Linux CentOS 6.7

2、 统一初始化新用户的环境变量

[root@oldboy ~]# cat /etc/skel/.bash_profile

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

    . ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

[root@oldboy ~]#echo "alias grep='grep --color=auto'" >> /etc/skel/.bash_profile

[root@oldboy ~]# cat /etc/skel/.bash_profile

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

    . ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

alias grep='grep --color=auto'

[root@oldboy ~]# useradd zhangshang

[root@oldboy ~]# passwd zhangshang

Changing password for user zhangshang.

New password:

BAD PASSWORD: it is too simplistic/systematic

BAD PASSWORD: is too simple

Retype new password:

passwd: all authentication tokens updated successfully.

[root@oldboy ~]# su - zhangshang

[zhangshang@oldboy ~]$ grep 3306 /etc/services

mysql           3306/tcp                        # MySQL

mysql           3306/udp                        # MySQL

[zhangshang@oldboy ~]$ alias

alias grep='grep --color=auto'

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

alias vi='vim'

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

[zhangshang@oldboy ~]$ su - oldboy

Password:

[oldboy@oldboy ~]$ alias

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

alias vi='vim'

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

3、 出现-bash-4.1.$问题原因及解决办法

[root@oldboy ~]# rm -rf /home/oldboy/.bash*   ##删除oldboy环境变量配置文件

[root@oldboy ~]# su - oldboy

-bash-4.1$

-bash-4.1$ cp /etc/skel/.bash* /home/oldboy/

-bash-4.1$ ls -la /home/oldboy/

total 24

drwx------   2 oldboy oldboy 4096 Dec 14 15:36 .

drwxr-xr-x. 11 root   root   4096 Dec 14 15:31 ..

-rw-r--r--   1 oldboy oldboy   18 Dec 14 15:36 .bash_logout

-rw-r--r--   1 oldboy oldboy  207 Dec 14 15:36 .bash_profile

-rw-r--r--   1 oldboy oldboy  124 Dec 14 15:36 .bashrc

-rw-------   1 oldboy oldboy  802 Nov 28 14:17 .viminfo

-bash-4.1$ exit

logout

[root@oldboy ~]# su - oldboy

[oldboy@oldboy ~]$

四、用户初始化目录login

    /etc/login.defs文件是用来定义创建用户时需要的一些用户的配置信息,如创建用户时,是否需要家目录,UID和GID的范围,用户及密码的有效期限等。

[oldboy@oldboy ~]$ grep -vE "#|^$" /etc/login.defs

MAIL_DIR    /var/spool/mail

PASS_MAX_DAYS   99999

PASS_MIN_DAYS   0

PASS_MIN_LEN    5

PASS_WARN_AGE   7

UID_MIN           500

UID_MAX         60000

GID_MIN           500

GID_MAX         60000

CREATE_HOME yes

UMASK           077

USERGROUPS_ENAB yes

ENCRYPT_METHOD SHA512

五、创建用户默认配置文件/etc/default/useradd

    /etc/default/useradd文件是在使用useradd添加用户时的一个需要调用的一个默认配置文件,可以使用 useradd –D  命令,这样的命令格式来修改文件里面的内容。

[root@oldboy ~]# cat /etc/default/useradd

# useradd defaults file

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

参数

功能描述

GROUP=100

依赖于/etc/login.defs的USERGROUPS_ENAB参数,如果为no,则此处控制

HOME=/home

把用户的家目录建在/home中

INACTIVE=-1

是否启用账号过期停权,-1表示不启用

EXPIRE=

账号终止日期,不设置表示不启用

SHELL=/bin/bash

新用户默认所用的shell类型

SKEL=/etc/skel

配置新用户目录默认存放路径,前前文提到的/etc/skell,就是配置在这里生效,即当我们用useradd添加用户时,用户家目录下的文件,都是从这里配置的目录复制过去的。

CREATE_MAIL_SPOOL=yes

创建mail文件

六、su切换用户

  

  su命令主要用来切换用户身份,为我们管理linux系统带来了很多方便,但是,这样通过su命令切换到root后,

也带来了很大安全管理问题;比如系统有8个普通用户,都可以通过切换到root身份进行系统管理,甚至还可以改掉

root的密码,让其他的普通用户无法再实现系统管理,还有,这么多用户中,有任何一人对系统操作的重大失误,

都可能导致整个系统崩溃或数据损失。这样的非集权式管理,在一定程度上就对系统的安全造成了较去的威协。

在工作中几乎有一半的问题来自于内部。

   我们既希望超级用户root密码掌握在少数或唯一的管理员手中,又希望多个系统管理员能够完成更多更复杂的系统管理的工作。

那么,如何解决多个系统管理员都能管理系统的而又不让超级权限泛滥的需求呢?这就需要sudo命令来替代或结合su命令来完成这样的苛刻且必要的管理需求。

[root@oldboy ~]# env | grep root --color=auto

USER=root

MAIL=/var/spool/mail/root

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin

PWD=/root

HOME=/root

LOGNAME=root

[root@oldboy ~]# su - oldboy

[oldboy@oldboy ~]$ env | grep root --color=auto

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/home/oldboy/bin

[oldboy@oldboy ~]$ env | grep oldboy --color=auto

HOSTNAME=oldboy

USER=oldboy

MAIL=/var/spool/mail/oldboy

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/home/oldboy/bin

PWD=/home/oldboy

HOME=/home/oldboy

LOGNAME=oldboy

[oldboy@oldboy ~]$ exit

logout

[root@oldboy ~]# su oldboy

[oldboy@oldboy root]$ env | grep oldboy --color=auto

HOSTNAME=oldboy

USER=oldboy

HOME=/home/oldboy

LOGNAME=oldboy

[oldboy@oldboy root]$ env | grep root --color=auto

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin

MAIL=/var/spool/mail/root

PWD=/root

七、sudovisudo控制用户对系统命令的使用权限

  为了安全及管理的方便,可将需要root权限的普通用户加入sudo管理,这样用户就可以通过自己的普通帐户登录实

现利用root的权限来管理系统了,当然也就不需要有root账号及密码了。sudo对应的权限配置文件/etc/sudoers。

  执行如下visudo命令,即可打开sudo权限配置文件/etc/sudoers,当然也可以使用vi模式编辑/etc/sudoers配置文件,

但推荐使用visudo命令编辑。

  通过sudo进行授权管理系统的目的:即能让运维人员干活,又不能威胁系统安全,其实就是前面讲的用户权限最小化原则,

还可以审计用户使用sudo的提权操作命令。为了管理方便,这里暂时给oldboy授权all权限,即可以管理整个系统。详细操作过程

为:输入visudo找到98行,并在该行下面放入如下内容。

 

1、sudo执行流程:

[root@oldboy ~]# cat -n /etc/sudoers | grep -E "97|98"

    97  ## Allow root to run any commands anywhere

    98  root    ALL=(ALL)   ALL    《=====此行是98行

##可以在98行下面加入授权的用户,也可以在其它位置加入,授权的命令要填写绝对路径

    oldboy  ALL=(ALL)   /usr/sbin/useradd,/usr/sbin/userdel

sudo提权配置说明:

用户或组

机器=(授权角色)

可以执行的命令

oldboy

ALL=(ALL)

/usr/sbin/userdel,/usr/sbin/userdel

说明:

1、通过sudo授权管理后,所有用户执行授权的特殊权限格式为“sudo命令”。

2、如果需要切换到root执行相关操作,可以通过“sudo su -”命令,注意,此命令提示的密码为当前用户的密码,而不是root的密码。

3、执行“sudo -1”命令可以查看当前用户被授予的sudo权限集合。

2、实例:

[oldboy@oldboy ~]$ whoami

oldboy

[oldboy@oldboy ~]$ useradd test01

-bash: /usr/sbin/useradd: Permission denied

[root@oldboy ~]# whoami

root

[root@oldboy ~]# cat -n /etc/sudoers | grep -E "97|98|99|100"

    97    ## Allow root to run any commands anywhere

    98    root ALL=(ALL)     ALL

    99   

   100    ## Allows members of the 'sys' group to run networking, software,

[root@oldboy ~]# which useradd

/usr/sbin/useradd

[root@oldboy ~]# sed -i '99a oldboy ALL=(ALL)  /usr/sbin/useradd' /etc/sudoers

[root@oldboy ~]# cat -n /etc/sudoers | grep -E "97|98|99|100"

    97    ## Allow root to run any commands anywhere

    98    root ALL=(ALL)     ALL

    99   

   100    oldboy ALL=(ALL)  /usr/sbin/useradd

[oldboy@oldboy ~]$ whoami

oldboy

[oldboy@oldboy ~]$ sudo -l

[sudo] password for oldboy:      ##输入odlboy密码进行验证

Matching Defaults entries for oldboy on this host:

    requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR

    LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE

    LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER

    LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",

    secure_path=/sbin:/bin:/usr/sbin:/usr/bin

User oldboy may run the following commands on this host:

(ALL) /usr/sbin/useradd

[oldboy@oldboy ~]$ sudo useradd test01

[oldboy@oldboy ~]$ tail -1 /etc/passwd

test01:x:502:508::/home/test01:/bin/bash

3、sudo定义别名

[root@oldboy ~]# cat -n /etc/sudoers | grep -E "97|98"

97  ## Allow root to run any commands anywhere

98  root    ALL=(ALL)   ALL

别名和具体授权配置的关系表

用户或组

主机

可以切换的用户角色

命令

root

ALL=

(ALL)

ALL

User_Alias ADMINS = jsmith, mikem,%groupname

Host_Alias     FILESERVERS = fs1, fs2

Runas_Alias  OP = root

Cmnd_Alias SERVICES=/sbin/service, /sbin/chkconfig

1、Host_Alias 定义主机别名

[root@oldboy ~]# grep -in "Host_Alias" /etc/sudoers

13:# Host_Alias FILESERVERS = fs1, fs2   ##请注意定义规范,“=”号两边有空格

14:# Host_Alias MAILSERVERS = smtp, smtp2 ##请注意定义规范,每个成员用逗号分隔,逗号后面有空

说明:

1、在生产场景中,一般情况不需要设置主机别名,在定义授权规则时可以通过ALL来匹配所有的主机。

2、请注意上面定义的规范,有些规范虽然不是必须的,但我们还是要求能够按照系统的标准来配置,这样可以避免意外的问题发生。

3、以上Host Aliases 内容截取自/etc/sudoer文件,最后两行取清了注释。

4、其实就是一个逻辑上的主机组,当多台服务器共享一个/etc/sudoers时候会用到这个主机别名。

2、User_Alias 定义用户别名

[root@oldboy ~]# grep -in "User_Alias" /etc/sudoers

20:# User_Alias ADMINS = jsmith, mikem,%groupname

注意:

1、设置用户别名也不是必须的,更多的情况,我们可以通过%groupnane的方式来作为成员。

3、Runas_Alias 定义runas(用户身份)别名

这个别名指定的是“用户身份”,即sudo允许切换到的用户身份。

Runas_Alias 定义的是用户可以执行sudo切换身份到Runas_Alias下包含的的成员身份。

实际语法为:

Runas_Alias  OP = root

4、Cmnd_Alias定义命令别名

命令别名就是定义一个别名,包含一堆命令,即一组相关命令的集合。

[root@oldboy ~]# grep -ni "Cmnd_Alias" /etc/sudoers

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

30:# Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum

33:# Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig

36:# Cmnd_Alias LOCATE = /usr/bin/updatedb

39:# Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount

42:# Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp

45:# Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

48:# Cmnd_Alias DRIVERS = /sbin/modprobe

5、别名应用实例

开发人员:

用户别名: User_Alias  DEVELOP_ADMIN = kaifa01,kaifa02,%KFgroup

命令权限:KAFACMD

身份权限:OP1

运维人员:

用户别名: User_Alias  LINUX_ADMIN = yuwei01,yuwei02,%YWgroup

命令权限:USERCMD, DISKCMD, NETMAGCMD, CTRLCD, KAFACMD

身份权限:OP1

网络工程师:

用户别名: User_Alias  NETWORK_ADMIN = wangluo01,wangluo02,%WLgroup

命令权限:DISKCMD,NETMAGCMD

身份权限:OP1

岗位命令分类:

Cmnd_Alias USERCMD = /usr/sbin/useradd,/usr/sbin/userdel,

/usr/bin/passwd[A-Za-z]*,/bin/chown./bin/chmod

Cmnd_Alias DISKCMD = /sbin/fdisk,/sbin/parted

Cmnd_Alias NETMAGCMD = /sbin/ifconfig,/ete/init.d/network

Cmnd_Alias CTRLCD = /usr/sbin/reboot,/usr/sbin/halt

Cmnd_Alias KAFACMD = /bin/grep,/usr/bin/tail,/bin/cat

角色:

Runas_Alias   OP1=root

授权:

root             ALL=(ALL)    ALL

用户             机器=角色      命令

DEVELOP_ADMIN    ALL=(OP1)     KAFACMD

LINUX_ADMIN      ALL=(OP1)     USERCMD,DISKCMD,NETMAGCMD,CTRLCD,KAFACMD   

NETWORK_ADMIN    ALL=(OP1)     DISKCMD,NETMAGCMD

6、上机测试

root管理员配置/etc/sudoers配置文件

[root@oldboy ~]# visudo

#用户别名设置

User_Alias  DEVELOP_ADMIN = kaifa01,kaifa02,%KFgroup

User_Alias  LINUX_ADMIN = yuwei01,yuwei02,%YWgroup

User_Alias  NETWORK_ADMIN = wangluo01,wangluo02,%WLgroup

#命令别名设置

Cmnd_Alias USERCMD = /usr/sbin/useradd,/usr/sbin/userdel,

/usr/bin/passwd[A-Za-z]*,/bin/chown./bin/chmod

Cmnd_Alias DISKCMD = /sbin/fdisk,/sbin/parted

Cmnd_Alias NETMAGCMD = /sbin/ifconfig,/ete/init.d/network

Cmnd_Alias CTRLCD = /usr/sbin/reboot,/usr/sbin/halt

Cmnd_Alias KAFACMD = /bin/grep,/usr/bin/tail,/bin/cat

#用户身份别名设置

Runas_Alias   OP1=root

#授权

DEVELOP_ADMIN    ALL=(OP1)     KAFACMD

LINUX_ADMIN      ALL=(OP1)     USERCMD,DISKCMD,NETMAGCMD,CTRLCD,KAFACMD

NETWORK_ADMIN    ALL=(OP1)     DISKCMD,NETMAGCMD

[root@oldboy ~]# visudo –c     #测试/etc/sudoers配置文件语法是否存在错误

/etc/sudoers: parsed OK

开发人员kaifa01测试:

[kaifa01@oldboy ~]$ whoami

kaifa01

[kaifa01@oldboy ~]$ sudo -l

[sudo] password for kaifa01:

Matching Defaults entries for kaifa01 on this host:

    requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR

    LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE

    LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER

    LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",

    secure_path=/sbin:/bin:/usr/sbin:/usr/bin

User kaifa01 may run the following commands on this host:

    (root) /bin/grep, /usr/bin/tail, /bin/cat

[kaifa01@oldboy ~]$ sudo grep "3306" /etc/services

mysql           3306/tcp                        # MySQL

mysql           3306/udp                        # MySQL

运维人员yuwei测试:

[yuwei01@oldboy ~]$ whoami

yuwei01

[yuwei01@oldboy ~]$ sudo -l

We trust you have received the usual lecture from the local System

Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.

    #2) Think before you type.

    #3) With great power comes great responsibility.

[sudo] password for yuwei01:

Matching Defaults entries for yuwei01 on this host:

    requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR

    LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE

    LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER

    LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",

    secure_path=/sbin:/bin:/usr/sbin:/usr/bin

User yuwei01 may run the following commands on this host:

    (root) /usr/sbin/useradd, /usr/sbin/userdel, /usr/bin/passwd[A-Za-z]*, /bin/chown./bin/chmod, (root)

    /sbin/fdisk, /sbin/parted, (root) /sbin/ifconfig, /ete/init.d/network, (root) /usr/sbin/reboot,

/usr/sbin/halt, (root) /bin/grep, /usr/bin/tail, /bin/cat

[yuwei01@oldboy ~]$ sudo useradd test

[yuwei01@oldboy ~]$ tail -1 /etc/passwd

test:x:507:510::/home/test:/bin/bash

网络人员wangluo01测试:

[wangluo01@oldboy ~]$ whoami

wangluo01

[wangluo01@oldboy ~]$ sudo -l

We trust you have received the usual lecture from the local System

Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.

    #2) Think before you type.

    #3) With great power comes great responsibility.

[sudo] password for wangluo01:

Matching Defaults entries for wangluo01 on this host:

    requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR

    LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE

    LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER

    LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",

    secure_path=/sbin:/bin:/usr/sbin:/usr/bin

User wangluo01 may run the following commands on this host:

    (root) /sbin/fdisk, /sbin/parted, (root) /sbin/ifconfig, /ete/init.d/network

[wangluo01@oldboy ~]$ sudo fdisk -l

Disk /dev/sda: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00043d20

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          26      204800   83  Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2              26         124      786432   82  Linux swap / Solaris

Partition 2 does not end on cylinder boundary.

/dev/sda3             124        1306     9493504   83  Linux

7、sudo 配置文件letc/sudoers授权规则注意事项总结:

(1)、授权规则中的所有ALL字符串必须为大写字母

(2)、Cmnd_Alias USERCMD=/usr/sbin/useradd,/usr/sbin/userdel,

/usr/bin/passwd,/usr/bin/passwd[A-Za-z",/bin/chown,/bin/chmod,Vusr/bin/passwd

rootoldboyALL=usr/sbin/M./sbin/",/usr/sbin/visudo.l/sbin/fdisk./usr/sbin/useradd,/usr/sbin/userdel,Wusr/bin/passwd,/us/bin/passwd[A-Za-z]",/bin/chown,/bin/chmod,!/usrlbin/passwd root

允许执行的命令是有顺序的。从老男孩测试的结果看,命令的顺序是从后向前,即把禁止执行的命令放在

允许命令的后面。如:usr/sbin/*,/sbin/*,!/usr/sbin/visudo,/sbin/fdisk,前面的为允许,后面的为禁止。

在强调下,禁止的命令尽量放在后面。

(3)、一行内容超长可以用“”斜线换行.

(4)、“!”叹号表示非,就是命令取反的意思,即禁止执行的命令。

8、Linux系统安全最小原则说明:

最小化原则对Limux系统安全来说极其重要:即多一事不如少一事。具体包括如下几个方面:|

(1)、安装Linux系统最小化,即选包最小化,yum安装软件包也要最小化,无用的包不装。

(2)、开机自启动服务最小化,即无用的服务不开启。

(3)、操作命令最小化。例如:能用“rm –f test.txt”就不用“rm –rf test.txt”。

(4)、登录Linux用户最小化,平时没有特殊需求不登录root,用普通用户登录即可。

(5)、普通用户授权权限最小化,即只给用户必须的管理系统的命令,不能啥都可以干。

(6)、Linux系统文件及目录的权限设置最小化,禁止随意创建、更改、删除文件。

原文地址:https://www.cnblogs.com/zoulongbin/p/10595238.html