1、用戶基礎瞭解mysql
Linux是一個多任務、多用戶的操做系統,每一個用戶和進程都須要對應一個用戶和用戶組,用戶名至關於姓名,linux
用戶UID至關於身份證號,用戶組GID至關於公司的工號。用戶與用戶組的關係一對1、多對1、一對多、多對多。sql
Linux系統用戶分類:shell
一、 超級用戶rootvim
root(超級管理員),UID爲0,擁有最高的權限,相似windows系統的administrator本地管理員。windows
root可使用sudo管理提權給普通用戶使用,至關於分配特殊權限給普通用戶使用。安全
二、 虛擬用戶bash
虛擬用戶,UID爲1~499,虛擬用戶通常與系統和程序服務相關,通常是默認不能登陸系統使用。服務器
三、 普通用戶網絡
通常是由具有系統管理員root權限用戶所建立,UID爲500~65535,這類用戶的權限會受到必定的基本權限限制,通常來自具有管理員用戶的限制。
當建立一個用戶,如下配置文件會被修改
用戶配置文件 /etc/passwd
用戶密碼配置文件 /etc/shadow
用戶組配置文件 /etc/group
用戶組密碼配置文件 /etc/gshadow
2、用戶管理命令
命令 |
功能描述 |
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來操做(會自動檢查語法) |
3、用戶初始化目錄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的企業場景做用:
一、 能夠把通知的內容放到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
二、 統一初始化新用戶的環境變量
[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'
三、 出現-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 ~]$
4、用戶初始化目錄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
5、建立用戶默認配置文件/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文件 |
6、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
7、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 |
說明:
一、經過sudo受權管理後,全部用戶執行受權的特殊權限格式爲「sudo命令」。
二、若是須要切換到root執行相關操做,能夠經過「sudo su -」命令,注意,此命令提示的密碼爲當前用戶的密碼,而不是root的密碼。
三、執行「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 ##請注意定義規範,每一個成員用逗號分隔,逗號後面有空
說明:
一、在生產場景中,通常狀況不須要設置主機別名,在定義受權規則時能夠經過ALL來匹配全部的主機。
二、請注意上面定義的規範,有些規範雖然不是必須的,但咱們仍是要求可以按照系統的標準來配置,這樣能夠避免意外的問題發生。
三、以上Host Aliases 內容截取自/etc/sudoer文件,最後兩行取清了註釋。
四、其實就是一個邏輯上的主機組,當多臺服務器共享一個/etc/sudoers時候會用到這個主機別名。
2、User_Alias 定義用戶別名
[root@oldboy ~]# grep -in "User_Alias" /etc/sudoers
20:# User_Alias ADMINS = jsmith, mikem,%groupname
注意:
一、設置用戶別名也不是必須的,更多的狀況,咱們能夠經過%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系統文件及目錄的權限設置最小化,禁止隨意建立、更改、刪除文件。