Linux 用戶管理_015

 

 

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系統文件及目錄的權限設置最小化,禁止隨意建立、更改、刪除文件。

相關文章
相關標籤/搜索