配置服務器的用戶管理是至關重要的步驟,特別是避免使用root用戶進行日常操作以防出現如“刪庫跑路”的風險。讓我們來看看如何查看、創建和編輯用戶。
查看用戶的命令示例:
$ who am i mugpeng ttys000 Aug 20 19:43 (base) mugpengdeMacBook-Pro:~ mugpeng$ who mom likes mugpeng ttys000 Aug 20 19:43
通常情況下,root用戶是系統的默認登錄賬戶,但為了安全起見,建議使用普通用戶進行日常操作。可以通過su user或su – user(后者會更改為切換用戶的工作目錄與環境)來切換用戶。或者,如果是屬于sudo組的用戶,可以使用sudo命令來執行特權操作。
新建用戶的命令如下:
# 新建用戶 sudo adduser lilei # 更改用戶密碼 sudo passwd lilei
新建用戶后,可以查看新用戶信息,并在必要時退出當前用戶。
adduser和useradd命令的區別也值得一提:
接下來是查看用戶組的兩種方法:
方法一:
groups xxxxxx : xxx
此命令中,冒號前的部分表示用戶,后面的部分表示該用戶所屬的用戶組。
方法二:
cat /etc/group | grep -E "xxx"
需要注意的是,顯示的密碼為“x”表示密碼不可見,并非實際密碼。
新建用戶默認不具備root權限,也不在sudo用戶組中。如果需要讓用戶具備root權限,可以將其加入sudo用戶組:
$ sudo usermod -G sudo hhh
刪除用戶和用戶組的命令如下:
$ sudo deluser lilei --remove-home
–remove-home選項會刪除用戶對應的工作目錄。刪除用戶組則使用groupdel命令。
權限編碼信息的解讀:
權限編碼示例:
-rw-r--r-- drwx------
其中,第一個字符表示對象類型:
- 表示文件 d 表示目錄 l 表示鏈接 c 表示字符型設備 b 表示塊設備 n 表示網絡設備
之后有三組三字符的編碼,每一組定義了三種訪問權限:
r 表示對象是可讀的 w 表示對象是可寫的 x 表示對象是可執行的 若沒有某種權限,則會在該權限位置出現單破折號。
這三組權限分別對應對象的三個安全級別:
對象的屬主 對象的屬組 系統其他用戶
變更文件所有者的命令如下,將xxx文件的所有者變更為user:
$ sudo chown user xxx
編輯文件權限時,umask命令會影響新創建文件的默認權限:
mugpengdembp:test mugpeng$ ls -l total 0 -rw-r--r-- 1 mugpeng wheel 0 Jun 9 11:20 test1 drwxr-xr-x 2 mugpeng wheel 64 Jun 9 11:20 test2
其中,-表示文件,d表示目錄。這些權限是通過umask設置的。我們可以通過輸入umask來查看默認權限設置:
$ umask 0022
umask值的第一位代表了粘著位(sticky bit)的安全特性,后面三位表示文件或目錄對應的umask八進制值。文件的全權限值為666,目錄的全權限值為777。
例如,umask為022時,文件的實際權限為644(666 – 022)。
我們可以使用umask xxx為其指定一個新值,改變新創建文件的默認權限:
$ umask 026 $ ls -l test3 -rw-r----- 1 mugpeng wheel 0 Jun 9 11:41 test3
chmod命令用于改變文件的權限:
chmod options mode file
mode參數可以是八進制模式或符號模式,默認使用八進制權限碼:
-rw-r----- 1 mugpeng wheel 0 Jun 9 11:41 test3 $ chmod 760 test3 -rwxrw---- 1 mugpeng wheel 0 Jun 9 11:41 test3
符號模式的安全設置相對復雜,格式為chmod [ugoa] [+-=] [rwxXstugo],其中:
u 表示用戶 g 表示組 o 代表其他 a 代表ugo全部 + 表示增加權限 - 表示移除權限 = 表示將現有權限修改為后面新值 X 表示若對象是目錄或已有執行權限,則賦予執行權限 s 表示運行時重新設置UID或GID t 表示保留文件或目錄
例如:
-rwxrw---- 1 mugpeng wheel 0 Jun 9 11:41 test3 $ chmod o+r test3 -rwxrw-r-- 1 mugpeng wheel 0 Jun 9 11:41 test3
最后,練習題展示如何創建用戶并賦予其sudo權限:
# 創建用戶 $ sudo adduser loutest # 將用戶加入sudo組 $ sudo usermod -G sudo loutest # 切換用戶 $ su -l loutest # 創建文件 $ sudo touch /opt/forloutest $ ls /opt/ | grep 'forloutest'