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
七、sudo\visudo控制用户对系统命令的使用权限
为了安全及管理的方便,可将需要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系统文件及目录的权限设置最小化,禁止随意创建、更改、删除文件。