passwd group SUID SGID SBIT

密碼

  • /usr/share/doc/setup*/uidgid
    保留的用戶名和組的ID記錄UID,GID

  • /etc/login.defs

    • 用戶郵件目錄
    • 用戶密碼 期限
    • 用戶uid/gid 可用的范圍(最小值,最大值)
    • 用戶uid/gid 可用的范圍(最小值,最大值)
    • 用戶創建時是否創建home目錄
    • UMASK 創建用戶家目錄的權限
    • 使用userdel時,如果組內沒有成員,可以刪除用戶組
    • passwd 創建密碼時的加密方式(SHA512)
  • /etc/security/pwquality.conf
    密碼規則,密碼的復雜度要求

  • chage ---更改用戶密碼有效期信息
    chage -M 90 username
    設置用戶密碼在90天內過期
    chage <username>
    交互式的設置用戶密碼有效期信息

  • /etc/bashrc
    PS1
    umask 設置對新創建的文件或目錄應用哪些權限
    對PS1修改,shell的定制到/etc/profile.d/下進行

  • /etc/profile /etc/profile.d/*.sh
    環境變量、 登陸初始化

  • UMASK
    出于安全原因,默認情況下,常規文件不能具有執行權限。因此,即使umask為0000(不禁止任何權限),新的常規文件仍然沒有執行權限。但是,可以使用執行權限創建目錄(目錄777 文件666):

    • -S 顯示mask后的實際字符權限
[john@server tmp]$ umask 0000
[john@server tmp]$ touch file
[john@server tmp]$ mkdir directory
[john@server tmp]$ ls -lh .
total 0
drwxrwxrwx. 2 john john 40 Nov  2 13:17 directory
-rw-rw-rw-. 1 john john  0 Nov  2 13:17 file

[tom@localhost ~]$ umask
0002
[tom@localhost ~]$ umask -S
u=rwx,g=rwx,o=rx
[tom@localhost ~]$ 

目錄777 文件666
Utilities Description
id 顯示用戶和組ID。
useradd, usermod, userdel 用于添加,修改和刪除用戶帳戶的標準實用程序。
groupadd, groupmod, groupdel 用于添加,修改和刪除組的標準實用程序。
gpasswd 該實用程序主要用于修改/etc/gshadow文件中的組密碼,該文件由newgrp命令使用。
pwck, grpck 可用于驗證密碼,組和關聯的shadow文件的實用程序。
pwconv, pwunconv 可用于將密碼轉換為shadow密碼或從shadow密碼轉換回標準密碼的實用程序。
grpconv, grpunconv 與上面的類似,這些實用程序可用于轉換組帳戶的隱藏信息。
  • 添加用戶

useradd [options] username

Option -
-c 'comment' 常用于指定用戶的全名。
-d home_directory 要使用的主目錄,而不是默認目錄/home/username/.
-e date 帳戶的停用日期,格式為 YYYY-MM-DD.
-f days 密碼過期后直到禁用帳戶的天數。如果指定為0,則密碼過期后立即禁用該帳戶。如果指定-1,則密碼過期后不會禁用該帳戶。
-g group_name
-g group_id
用戶默認(主要)組的組名或組號。該組必須存在,然后才能在此處指定。
-G group_list 用戶的附加組,以逗號分隔。這些組必須存在,然后才能在此處指定。
-m 如果主目錄不存在,創建它。
-M 不要創建主目錄。
-N 不要為用戶創建用戶私人組。
-p password 用crypt加密的密碼
-r 創建UID小于1000且沒有主目錄的系統帳戶。
-s 用戶的登錄shell,默認為 /bin/bash.
-u uid 用戶的用戶標識,必須唯一且大于999。
juan:!!:14798:0:99999:7:::

在/etc/shadow文件的密碼字段中會出現兩個感嘆號(!!),它會鎖定該帳戶。


  • 創建組

groupadd [options] group_name

Option Description
-f, --force 與-g gid一起使用且gid已經存在時,
groupadd將為該組選擇另一個唯一的gid。
-g gid 群組的群組ID,必須唯一且大于999。
-K, --key key=value 覆蓋/etc/login.defs默認值。
-o, --non-unique 允許創建具有重復GID的組。
-p, --password password 對新組使用此加密密碼。
-r 創建GID小于1000的系統組。

  • usermod 將現有用戶添加到現有組

usermod -g group_name user_name # 改變用戶的屬組 (不保留原有的)
usermod -G group_name1,group_name2,... user_name # 改變用戶的有多個屬組(不保留原有)
usermod -aG group_name1,group_name2,... user_name # 為用戶添加多個屬組(保留原有的)

  • passwd [選項] user
    passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
選項 說明
--help 顯示幫助文檔
--version 顯示命令版本
-d 刪除用戶的密碼,只有root用戶才能使用
-e 使用戶密碼失效,強制用戶下次登錄改變密碼,只有root用戶才能使用
-n 設置密碼的最短有效時間,只有root用戶才能使用
-x 設置密碼最大有效時間,只有root用戶才能使用
-S 顯示簡短的密碼信息,只有root用戶才能使用
-l 鎖定用戶,只有root用戶才能使用
-u 解鎖用戶,只有root用戶才能使用
-k 選項-k用于指示更新只適用于過期的身份驗證令牌(密碼);用戶希望像以前一樣保留其未過期的令牌。
-i 這將設置此帳戶的過期密碼將被視為不活動的天數,如果用戶帳戶支持密碼生存期,則應禁用該帳戶。只對根用戶可用。
-w 這將設置用戶將開始收到警告,如果用戶帳戶支持密碼生存期,其密碼將過期的天數。只對根用戶可用。
--stdin 此選項用于指示passwd應從標準輸入中讀取新密碼,該輸入可以是管道。
echo "password" |passwd --stdin user少用
  • /etc/passwd
    name:password:UID:GID:GECOS:directory:shell
    GECOS: 注釋,常用全名

  • /etc/shadow

字段 說明
login name 登錄名
encrypted password 加密密碼
date of last password change 自1970年1月1日以來的最后一次更改密碼
minimum password age 最小密碼使用期限是允許用戶再次更改密碼之前,
用戶必須等待的天數。
maximum password age 最長密碼使用期限是用戶必須更改密碼的天數。
password warning period 密碼到期前的天數(請參見上面的最長密碼使用
期限),在此期間應警告用戶。
password inactivity period 密碼過期后的天數(請參見上面的最長密碼使用
期限),在此期間仍應接受密碼(用戶應在下次
登錄時更新其密碼)。
account expiration date 帳戶的到期日期,表示自1970年1月1日以來的天數。
reserved field 該字段保留供將來使用。
  • ACLS
    • 設置ACL
      setfacl -m rules files
      rules:
      • u:uid:perms
        設置用戶的訪問ACL。可以指定用戶名或UID。該用戶可以是系統上的任何有效用戶。
      • g:gid:perms
        設置組的訪問ACL。可以指定組名或GID。該組可以是系統上的任何有效組。
      • m:perms
        設置有效權限掩碼。掩碼是擁有組的所有權限以及所有用戶和組條目的并集。
      • o:perms
        為文件組中的用戶以外的用戶設置訪問ACL。
        perms(權限)必須是字符r,w和x的組合,才能進行讀取,寫入和執行。
        例如,向用戶andrius授予讀寫權限:
        # setfacl -m u:andrius:rw /project/somefile
        例如,要刪除用戶,組或其他用戶的所有權限,請使用-x選項,并且不要指定任何權限:
        # setfacl -x rules files
        例如,要從具有UID 500的用戶中刪除所有權限,請執行以下操作:
        # setfacl -x u:500 /project/somefile
    • 恢復默認ACLs
      要設置默認ACL,請在規則前添加d:并指定目錄而不是文件名。
      例如,要將/ share /目錄的默認ACL設置為對不在用戶組中的用戶讀取和執行(單個文件的訪問ACL可以覆蓋它):
      # setfacl -m d:o:rx /share
    • 查看ACLs
      getfacl

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/security_guide/index

特殊權限 suid sgid sticky

  • SUID(setuid)
    功用:用戶運行某程序時,如果此程序擁有SUID權限,那么程序運行時,進程的屬主不是發起者,而是程序文件自己的屬主。


    設置setuid后在屬主的x位表示
文件 原權限 有無執行權限 加suid后的權限 是否有效
file -rw-r--r-- -rwSr--r--
file -rwxr--r-- -rwsr--r--

  • sgid(setgid)

功用:當目錄屬組有寫權限,且有SGID權限時,那么所有屬于此目錄的屬組,且以屬組的身份在此目錄中新建文件或者目錄時,新文件的屬組不是用戶的基本組,而是此目錄的屬組。





設置setgid后在屬組的x位表示

目錄 原權限 有無執行權限 加suid后的權限 是否有效
Dir drwxr--r-x drwxr-Sr-x
Dir drwxr-xr-x drwxr-sr-x

  • sticky
    功用:對于屬組或全局可寫的目錄,組內的所有用戶或系統上的所有用戶對在此目錄中都能創建新文件或刪除所有的已有文件,如果為此類目錄設置sticky權限,則每個用戶都能創建新文件,且只能刪除自己的文件。


設置sticky后在全局(other)的x位表示

目錄 原權限 有無執行權限 加suid后的權限 是否有效
Dir drwxrwxrwx drwxrwxrwT
Dir drwxrwxrwx drwxrwxrwt

設置方法

名稱 命令 說明
suid u+s or 4 -
- chmod u+s cat #添加suid
- chmod u-s cat #取消suid
- chmod 4755 cat #添加suid
- chmod 0755 cat #取消suid
sgid g+s or 2 -
- chmod g+s /testdir/ #添加sgid
- chmod g-s /testdir/ #取消sgid
- chmod 2755 /testdir/ #添加guid
- chmod 0755 /testdir/ #取消guid
sticky o+s or 1 -
- chmod o+s /testdir/ #添加sticky
- chmod o-s /testdir/ #取消sticky
- chmod 1755 /testdir/ #添加sticky
- chmod 0755 /testdir/ #取消sticky
- 也可以suid,sgid,sticky位同時設置 -

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容