Difference between revisions of "Users and groups (正體中文)"

From ArchWiki
Jump to: navigation, search
(update contents)
Line 1: Line 1:
 +
[[Category:正體中文]]
 
[[Category:Security (正體中文)]]
 
[[Category:Security (正體中文)]]
 +
[[de:Benutzer und Gruppen]]
 
[[en:Users and Groups]]
 
[[en:Users and Groups]]
 
[[es:Users and Groups]]
 
[[es:Users and Groups]]
Line 8: Line 10:
 
[[sr:Users and Groups]]
 
[[sr:Users and Groups]]
 
[[zh-CN:Users and Groups]]
 
[[zh-CN:Users and Groups]]
{{Article summary start|摘要}}
+
{{Related articles start}}
{{Article summary text|本文章描述如何管理使用者與群組帳號。某些[[desktop environment|桌面環境]]會提供圖形使用者 / 群組管理工具,此非本文討論範圍。}}
+
{{Related|DeveloperWiki:UID / GID Database}}
{{Article summary heading|概要}}
+
{{Related|polkit}}
{{Article summary text|{{:Category:Security}}}}
+
{{Related|chmod}}
{{Article summary heading|相關資料}}
+
{{Related|Change username}}
{{Article summary wiki|DeveloperWiki:UID / GID Database}}
+
{{Related articles end}}
{{Article summary wiki|PolicyKit}}
+
{{Article summary wiki|chmod}}
+
{{Article summary wiki|Change username}}
+
{{Article summary end}}
+
  
 
{{Translateme|翻譯中}}
 
{{Translateme|翻譯中}}
Line 27: Line 25:
 
A ''user'' is anyone who uses a computer. In this case, we are describing the names which represent those users. It may be Mary or Bill, and they may use the names Dragonlady or Pirate in place of their real name. All that matters is that the computer has a name for each account it creates, and it is this name by which a person gains access to use the computer. Some system services also run using restricted or privileged user accounts.
 
A ''user'' is anyone who uses a computer. In this case, we are describing the names which represent those users. It may be Mary or Bill, and they may use the names Dragonlady or Pirate in place of their real name. All that matters is that the computer has a name for each account it creates, and it is this name by which a person gains access to use the computer. Some system services also run using restricted or privileged user accounts.
  
Managing users is done for the purpose of security by limiting access in certain specific ways.
+
Managing users is done for the purpose of security by limiting access in certain specific ways. The superuser (root) has complete access to the operating system and its configuration; it is intended for administrative use only. Unprivileged users can use the [[su]] and [[sudo]] programs for controlled privilege escalation.
  
 
Any individual may have more than one account, as long as they use a different name for each account they create. Further, there are some reserved names which may not be used such as "root".
 
Any individual may have more than one account, as long as they use a different name for each account they create. Further, there are some reserved names which may not be used such as "root".
Line 49: Line 47:
 
Every file on a GNU/Linux system is owned by a user and a group. In addition, there are three types of access permissions: read, write, and execute. Different access permissions can be applied to a file's owning user, owning group, and others (those without ownership). One can determine a file's owners and permissions by viewing the long listing format of the {{ic|ls}} command:
 
Every file on a GNU/Linux system is owned by a user and a group. In addition, there are three types of access permissions: read, write, and execute. Different access permissions can be applied to a file's owning user, owning group, and others (those without ownership). One can determine a file's owners and permissions by viewing the long listing format of the {{ic|ls}} command:
  
{{hc|$ ls /boot/ -l|total 13740
+
{{hc|$ ls -l /boot/|total 13740
 
drwxr-xr-x 2 root root    4096 Jan 12 00:33 grub
 
drwxr-xr-x 2 root root    4096 Jan 12 00:33 grub
-rw-r--r-- 1 root root 8570335 Jan 12 00:33 kernel26-fallback.img
+
-rw-r--r-- 1 root root 8570335 Jan 12 00:33 initramfs-linux-fallback.img
-rw-r--r-- 1 root root 1821573 Jan 12 00:31 kernel26.img
+
-rw-r--r-- 1 root root 1821573 Jan 12 00:31 initramfs-linux.img
 
-rw-r--r-- 1 root root 1457315 Jan  8 08:19 System.map26
 
-rw-r--r-- 1 root root 1457315 Jan  8 08:19 System.map26
-rw-r--r-- 1 root root 2209920 Jan  8 08:19 vmlinuz26}}
+
-rw-r--r-- 1 root root 2209920 Jan  8 08:19 vmlinuz-linux}}
  
 
The first column displays the file's permissions (for example, the file {{ic|kernel26.img}} has permissions {{ic|-rw-r--r--}}). The third and fourth columns display the file's owning user and group, respectively. In this example, all files are owned by the ''root'' user and the ''root'' group.
 
The first column displays the file's permissions (for example, the file {{ic|kernel26.img}} has permissions {{ic|-rw-r--r--}}). The third and fourth columns display the file's owning user and group, respectively. In this example, all files are owned by the ''root'' user and the ''root'' group.
  
{{hc|$ ls /media/ -l|total 16
+
{{hc|$ ls -l /media/|total 16
 
drwxrwx--- 1 root vboxsf 16384 Jan 29 11:02 sf_Shared}}
 
drwxrwx--- 1 root vboxsf 16384 Jan 29 11:02 sf_Shared}}
  
Line 116: Line 114:
  
 
* '''{{ic|-m}}''' 建立使用者的家目錄為 {{ic|/home/[使用者名稱]}};一個非 root 的使用者在家目錄內可以寫入、刪除檔案並安裝程式。
 
* '''{{ic|-m}}''' 建立使用者的家目錄為 {{ic|/home/[使用者名稱]}};一個非 root 的使用者在家目錄內可以寫入、刪除檔案並安裝程式。
* '''{{ic|-g}}''' 定義使用者起始登入群組的群組名稱或編號;群組名稱必須存在;若提供群組編號,其指定的群組必須是一個已存在的群組;若未指定此項,useradd 將參考 {{ic|/etc/login.defs}} 內所包含的 USERGROUPS_ENAB 變數。
+
* '''{{ic|-g}}''' 定義使用者起始登入群組的群組名稱或編號;群組名稱必須存在;若提供群組編號,其指定的群組必須是一個已存在的群組;若未指定此項,useradd 將參考 {{ic|/etc/login.defs}} 內所包含的 {{ic|USERGROUPS_ENAB}} 變數。
 
* '''{{ic|-G}}''' 引進一個輔助群組清單,讓使用者同時成為這些群組的成員;每個群組以逗號分隔,不包含任何空格;預設情況下,使用者只會隸屬於其起始群組。
 
* '''{{ic|-G}}''' 引進一個輔助群組清單,讓使用者同時成為這些群組的成員;每個群組以逗號分隔,不包含任何空格;預設情況下,使用者只會隸屬於其起始群組。
* '''{{ic|-s}}''' 定義使用者預設登入用 Shell 的路徑與檔名;Arch Linux 啟始腳本使用 Bash;當開機程序結束後,預設登入用 Shell 就變成所指定的 Shell;若選擇 Bash 以外的 Shell,請確認已經安裝所選 Shell 的軟體包。
+
* '''{{ic|-s}}''' 定義使用者預設登入用 Shell 的路徑與檔名;當開機程序結束後,預設登入用 Shell 就變成所指定的 Shell;若選擇 Bash 以外的 Shell,請確認已經安裝所選 Shell 的軟體包。
 +
 
 +
{{警告|登入 shell 應為 {{ic|/etc/shells}} 有列出的 shell。使用 PAM 的程式會藉由 {{ic|pam_shells}} 模組檢查。}}
  
 
一個典型桌面系統下的範例:新增 ''archie'' 這個使用者,並指定登入用 Shell 為 bash:
 
一個典型桌面系統下的範例:新增 ''archie'' 這個使用者,並指定登入用 Shell 為 bash:
  # useradd -m -g users -s /bin/bash archie
+
  # useradd -m -g users -G wheel -s /bin/bash archie
  
 
之後若要將使用者加入其它群組,使用
 
之後若要將使用者加入其它群組,使用
  
 
  # usermod -aG [額外群組] [使用者名稱]
 
  # usermod -aG [額外群組] [使用者名稱]
 +
或是使用 gpasswd。使用者一次只能加入 (或移出) 一個群組。
 +
# gpasswd --add [username] [group]
  
{{警告|若忽略 {{ic|-a}} 選項,該使用者將會被踢出所有未列於 {{ic|[額外群組]}} 的群組 (也就是說,使用者將只有 {{ic|[額外群組]}} 所列舉群組的成員身分)。}}
+
{{警告|若從上面的 {{ic|usermod}} 指令拿掉 {{ic|-a}} 選項,該使用者將會被踢出所有未列於 {{ic|[額外群組]}} 的群組 (也就是說,使用者將只有 {{ic|[額外群組]}} 所列舉群組的成員身分)。}}
  
 
若要在 ''GECOS'' 欄位 (例如,使用者的全名) 輸入使用者資訊:
 
若要在 ''GECOS'' 欄位 (例如,使用者的全名) 輸入使用者資訊:
Line 138: Line 140:
  
 
  # passwd [username]
 
  # passwd [username]
 +
 +
標示使用者密碼已經過期,要求他們在第一次登入時建立新密碼:
 +
 +
# chage -d 0 [username]
  
 
使用者帳號可以使用 {{ic|userdel}} 指令刪除。
 
使用者帳號可以使用 {{ic|userdel}} 指令刪除。
Line 207: Line 213:
  
 
{{註記|
 
{{註記|
* 在執行 systemd 的系統下,某些群組可能為非必要。請參閱 [[Systemd#Supplementary_information|Systemd 的「補充資料」一節]]。
 
 
* 只要 ''logind'' 階段沒有損毀,正常的桌面權限如音效、3D、列印、掛載等都能直接獲得,不必加入這些群組。(若要檢查,詳見[[General Troubleshooting#Session permissions|一般疑難排解#階段權限]])。
 
* 只要 ''logind'' 階段沒有損毀,正常的桌面權限如音效、3D、列印、掛載等都能直接獲得,不必加入這些群組。(若要檢查,詳見[[General Troubleshooting#Session permissions|一般疑難排解#階段權限]])。
 
}}
 
}}
工作站、桌面使用者通常會將他們的非 root 使用者帳號加入以下某些群組,對周邊設備與其它硬體的存取才會被允許,以便進行系統的管理:
+
工作站/桌面使用者通常會將他們的非 root 使用者帳號加入以下某些群組,對周邊設備與其它硬體的存取才會被允許,以便進行系統管理:
  
 
{| border="1"  
 
{| border="1"  
 
! 群組 || 影響檔案 || 目的
 
! 群組 || 影響檔案 || 目的
|-
 
| audio || {{ic|/dev/audio}}, {{ic|/dev/snd/*}}, {{ic|/dev/rtc0}} || 在所有階段對音效硬體的直接存取 ([[ALSA]] 和 [[OSS]] 皆提出要求)。本機階段已經有能力播放音效、存取混音器控制。
 
 
|-
 
|-
 
| camera || || 存取[[Digital Cameras|數位相機]]。
 
| camera || || 存取[[Digital Cameras|數位相機]]。
|-
 
| disk || {{ic|/dev/sda[1-9]}}, {{ic|/dev/sdb[1-9]}} || 存取區塊裝置,不受 ''optical''、''floppy'' 與 ''storage'' 其它群組的影響。
 
 
|-
 
|-
 
| floppy || {{ic|/dev/fd[0-9]}} || 存取軟碟機。
 
| floppy || {{ic|/dev/fd[0-9]}} || 存取軟碟機。
Line 226: Line 227:
 
|-
 
|-
 
| locate || {{ic|/usr/bin/locate}}, {{ic|/var/lib/locate}}, {{ic|/var/lib/mlocate}}, {{ic|/var/lib/slocate}} || 使用 [[Wikipedia:updatedb|updatedb]] 指令的權利。
 
| locate || {{ic|/usr/bin/locate}}, {{ic|/var/lib/locate}}, {{ic|/var/lib/mlocate}}, {{ic|/var/lib/slocate}} || 使用 [[Wikipedia:updatedb|updatedb]] 指令的權利。
|-
 
| lp || {{ic|/etc/cups}}, {{ic|/var/log/cups}}, {{ic|/var/cache/cups}}, {{ic|/var/spool/cups}} || 存取印表機硬體;讓使用者能夠管理列印工作。
 
|-
 
| network || || 改變網路設定值的權利;像是使用 [[NetworkManager]]。
 
 
|-
 
|-
 
| networkmanager || || 您的使用者帳號需要這個,才能以 [[NetworkManager]] 連上無線網路。這個群組預設不包含進 Arch,必須手動加入。
 
| networkmanager || || 您的使用者帳號需要這個,才能以 [[NetworkManager]] 連上無線網路。這個群組預設不包含進 Arch,必須手動加入。
|-
 
| optical || {{ic|/dev/sr[0-9]}}, {{ic|/dev/sg[0-9]}} || 存取光學裝置,如 CD/DVD 光碟機。
 
|-
 
| power || || 使用 [[Pm-utils]] (暫停、休眠...) 與電力管理控制的權利。
 
 
|-
 
|-
 
| rfkill || {{ic|/dev/rfkill}} || 控制無線裝置電力狀態的權利 ({{Pkg|rfkill}} 使用)。
 
| rfkill || {{ic|/dev/rfkill}} || 控制無線裝置電力狀態的權利 ({{Pkg|rfkill}} 使用)。
|-
 
| scanner || {{ic|/var/lock/sane}} || 存取掃描器硬體。
 
|-
 
| storage || || 存取可移除裝置,如 USB 外接硬碟、快速插拔裝置、MP3 播放器;讓使用者能夠掛載儲存裝置。
 
|-
 
| sys || || 管理 [[CUPS]] 內印表機的權利。
 
 
|-
 
|-
 
| users || || 一般使用者群組。
 
| users || || 一般使用者群組。
Line 249: Line 236:
 
| uucp || {{ic|/dev/ttyS[0-9]}}, {{ic|/dev/tts/[0-9]}} || 序列與 USB 裝置,如數據機、手持設備、RS-232/序列埠。
 
| uucp || {{ic|/dev/ttyS[0-9]}}, {{ic|/dev/tts/[0-9]}} || 序列與 USB 裝置,如數據機、手持設備、RS-232/序列埠。
 
|-
 
|-
| video || {{ic|/dev/fb/0}}, {{ic|/dev/misc/agpgart}} || 存取影像擷取裝置、2D/3D 硬體加速、幀緩衝 (使用 [[Xorg|X]] '''不需要'''加入本群組)。本機階段已經有能力使用硬體加速與影像擷取。
+
| wheel || || 管理性群組,通常用來給予 [[sudo]] 與 [[su]] 指令的存取 (預設皆不使用,可在 {{ic|/etc/pam.d/su}} {{ic|/etc/pam.d/su-l}} 設置)。
|-
+
| wheel || || 管理性群組,通常用來給予 sudo 與 su 指令的存取 (預設皆不使用)。
+
 
|}
 
|}
  
Line 257: Line 242:
  
 
以下群組作為系統用途,不太被一般 Arch 使用者所使用:
 
以下群組作為系統用途,不太被一般 Arch 使用者所使用:
 
+
{{註記|
 +
* 在 Arch 移轉到 systemd 之前,某些群組是必須的。現在就不需要了。請參閱 [[Systemd#Supplementary_information|Systemd 的「補充資料」一節]]。
 +
}}
 
{| border="1"  
 
{| border="1"  
 
! 群組 || 影響檔案 || 目的
 
! 群組 || 影響檔案 || 目的
 +
|-
 +
| audio || {{ic|/dev/audio}}, {{ic|/dev/snd/*}}, {{ic|/dev/rtc0}} || 在所有階段對音效硬體的直接存取 ([[ALSA]] 和 [[OSS]] 皆提出要求)。本機階段已經有能力播放音效、存取混音器控制。
 
|-
 
|-
 
| avahi || ||
 
| avahi || ||
Line 270: Line 259:
 
|-
 
|-
 
| dbus || {{ic|/var/run/dbus/*}} ||
 
| dbus || {{ic|/var/run/dbus/*}} ||
 +
|-
 +
| disk || {{ic|/dev/sda[1-9]}}, {{ic|/dev/sdb[1-9]}} || 存取區塊裝置,不受 {{ic|optical}}、{{ic|floppy}} 與 {{ic|storage}} 等群組的影響。
 
|-
 
|-
 
| ftp || {{ic|/srv/ftp}} || [[Wikipedia:FTP|FTP]] 伺服器使用,如 [[Proftpd]]
 
| ftp || {{ic|/srv/ftp}} || [[Wikipedia:FTP|FTP]] 伺服器使用,如 [[Proftpd]]
 +
|-
 +
| fuse || || fuse 使用,允許使用者掛載。
 
|-
 
|-
 
| gdm || X 伺服器認證目錄 (ServAuthDir) || [[GDM]] 群組。
 
| gdm || X 伺服器認證目錄 (ServAuthDir) || [[GDM]] 群組。
Line 280: Line 273:
 
|-
 
|-
 
| log || {{ic|/var/log/*}} || 存取 {{ic|/var/log}} 下的日誌檔。
 
| log || {{ic|/var/log/*}} || 存取 {{ic|/var/log}} 下的日誌檔。
 +
|-
 +
| lp || {{ic|/etc/cups}}, {{ic|/var/log/cups}}, {{ic|/var/cache/cups}}, {{ic|/var/spool/cups}} || 存取印表機硬體;讓使用者能夠管理列印工作。
 
|-
 
|-
 
| mail || {{ic|/usr/bin/mail}} ||
 
| mail || {{ic|/usr/bin/mail}} ||
Line 286: Line 281:
 
|-
 
|-
 
| mpd || {{Ic|/var/lib/mpd/*}}, {{Ic|/var/log/mpd/*}}, {{Ic|/var/run/mpd/*}},另外再加上音樂目錄 || [[MPD]] 群組。
 
| mpd || {{Ic|/var/lib/mpd/*}}, {{Ic|/var/log/mpd/*}}, {{Ic|/var/run/mpd/*}},另外再加上音樂目錄 || [[MPD]] 群組。
 +
|-
 +
| network || || 改變網路設定值的權利;像是使用 [[NetworkManager]]。
 
|-
 
|-
 
| nobody || || 沒有權限的群組。
 
| nobody || || 沒有權限的群組。
 
|-
 
|-
 
| ntp || {{Ic|/var/lib/ntp/*}} || [[NTPd]] 群組。
 
| ntp || {{Ic|/var/lib/ntp/*}} || [[NTPd]] 群組。
 +
|-
 +
| optical || {{ic|/dev/sr[0-9]}}, {{ic|/dev/sg[0-9]}} || 存取光學裝置,如 CD/DVD 光碟機。
 
|-
 
|-
 
| policykit || || [[PolicyKit]] 群組。
 
| policykit || || [[PolicyKit]] 群組。
 +
|-
 +
| power || || 使用 [[Pm-utils]] (暫停、休眠...) 與電力管理控制的權利。
 
|-
 
|-
 
| root || {{ic|/*}} || 完整的系統管理與控制權 (root, admin)。
 
| root || {{ic|/*}} || 完整的系統管理與控制權 (root, admin)。
 +
|-
 +
| scanner || {{ic|/var/lock/sane}} || 存取掃描器硬體。
 
|-
 
|-
 
| smmsp || || [[Wikipedia:sendmail|sendmail]] 群組。
 
| smmsp || || [[Wikipedia:sendmail|sendmail]] 群組。
 +
|-
 +
| storage || || 存取可移除裝置,如 USB 外接硬碟、快速插拔裝置、MP3 播放器;讓使用者能夠掛載儲存裝置。
 +
|-
 +
| sys || || 管理 [[CUPS]] 內印表機的權利。
 
|-
 
|-
 
| systemd-journal || {{ic|/var/log/journal/*}} || 提供完整的 systemd 日誌存取。否則只顯示使用者產生的訊息。
 
| systemd-journal || {{ic|/var/log/journal/*}} || 提供完整的 systemd 日誌存取。否則只顯示使用者產生的訊息。
Line 303: Line 310:
 
| vboxsf || 虛擬機器共享資料夾 || [[VirtualBox]] 使用。
 
| vboxsf || 虛擬機器共享資料夾 || [[VirtualBox]] 使用。
 
|-
 
|-
| fuse || || fuse 使用,允許使用者掛載。
+
| video || {{ic|/dev/fb/0}}, {{ic|/dev/misc/agpgart}} || 存取影像擷取裝置、2D/3D 硬體加速、幀緩衝 (使用 [[Xorg|X]] '''不需要'''加入本群組)。本機階段已經有能力使用硬體加速與影像擷取。
 
|}
 
|}
  
Line 316: Line 323:
 
|-
 
|-
 
| cdemu || {{ic|/dev/vhba_ctl}} || 使用 [[cdemu]] 驅動模擬的權利。
 
| cdemu || {{ic|/dev/vhba_ctl}} || 使用 [[cdemu]] 驅動模擬的權利。
|-
 
| kvm || {{ic|/dev/kvm}} || 使用 [[KVM]] 的「硬體輔助虛擬化」(Hardware-assisted Virtualization) 的權利。
 
 
|-
 
|-
 
| thinkpad || {{ic|/dev/misc/nvram}} || ThinkPad 使用者用來存取諸如 [[tpb]] 等工具。
 
| thinkpad || {{ic|/dev/misc/nvram}} || ThinkPad 使用者用來存取諸如 [[tpb]] 等工具。
Line 338: Line 343:
 
|-
 
|-
 
| stb-admin || '''已不再使用!'''存取 [http://system-tools-backends.freedesktop.org/ system-tools-backends] 的權利
 
| stb-admin || '''已不再使用!'''存取 [http://system-tools-backends.freedesktop.org/ system-tools-backends] 的權利
 +
|-
 +
| kvm || 以前要讓非 root 的使用者存取使用 [[KVM]] 的虛擬機器,需要將使用者新增到 {{ic|kvm}} 群組。現在會自動使用 [[udev]] 規則,因此該群組已不建議使用。
 
|}
 
|}

Revision as of 16:07, 22 January 2014

Tango-preferences-desktop-locale.pngThis article or section needs to be translated.Tango-preferences-desktop-locale.png

Notes: 翻譯中 (Discuss in Talk:Users and groups (正體中文)#)

Users and groups are used on GNU/Linux for access control — that is, to control access to the system's files, directories, and peripherals. Linux offers relatively simple/coarse access control mechanisms by default. For more advanced options, see ACL and LDAP Authentication.

概要

A user is anyone who uses a computer. In this case, we are describing the names which represent those users. It may be Mary or Bill, and they may use the names Dragonlady or Pirate in place of their real name. All that matters is that the computer has a name for each account it creates, and it is this name by which a person gains access to use the computer. Some system services also run using restricted or privileged user accounts.

Managing users is done for the purpose of security by limiting access in certain specific ways. The superuser (root) has complete access to the operating system and its configuration; it is intended for administrative use only. Unprivileged users can use the su and sudo programs for controlled privilege escalation.

Any individual may have more than one account, as long as they use a different name for each account they create. Further, there are some reserved names which may not be used such as "root".

Users may be grouped together into a "group," and users may choose to join an existing group to utilize the privileged access it grants.

Note: The beginner should use these tools carefully and stay away from having anything to do with any other existing user account, other than their own.

權限與擁有權

From In UNIX Everything is a File:

The UNIX operating system crystallizes a couple of unifying ideas and concepts that shaped its design, user interface, culture and evolution. One of the most important of these is probably the mantra: "everything is a file," widely regarded as one of the defining points of UNIX.
This key design principle consists of providing a unified paradigm for accessing a wide range of input/output resources: documents, directories, hard-drives, CD-ROMs, modems, keyboards, printers, monitors, terminals and even some inter-process and network communications. The trick is to provide a common abstraction for all of these resources, each of which the UNIX fathers called a "file." Since every "file" is exposed through the same API, you can use the same set of basic commands to read/write to a disk, keyboard, document or network device.

From Extending UNIX File Abstraction for General-Purpose Networking:

A fundamental and very powerful, consistent abstraction provided in UNIX and compatible operating systems is the file abstraction. Many OS services and device interfaces are implemented to provide a file or file system metaphor to applications. This enables new uses for, and greatly increases the power of, existing applications — simple tools designed with specific uses in mind can, with UNIX file abstractions, be used in novel ways. A simple tool, such as cat, designed to read one or more files and output the contents to standard output, can be used to read from I/O devices through special device files, typically found under the /dev directory. On many systems, audio recording and playback can be done simply with the commands, "cat /dev/audio > myfile" and "cat myfile > /dev/audio," respectively.

Every file on a GNU/Linux system is owned by a user and a group. In addition, there are three types of access permissions: read, write, and execute. Different access permissions can be applied to a file's owning user, owning group, and others (those without ownership). One can determine a file's owners and permissions by viewing the long listing format of the ls command:

$ ls -l /boot/
total 13740
drwxr-xr-x 2 root root    4096 Jan 12 00:33 grub
-rw-r--r-- 1 root root 8570335 Jan 12 00:33 initramfs-linux-fallback.img
-rw-r--r-- 1 root root 1821573 Jan 12 00:31 initramfs-linux.img
-rw-r--r-- 1 root root 1457315 Jan  8 08:19 System.map26
-rw-r--r-- 1 root root 2209920 Jan  8 08:19 vmlinuz-linux

The first column displays the file's permissions (for example, the file kernel26.img has permissions -rw-r--r--). The third and fourth columns display the file's owning user and group, respectively. In this example, all files are owned by the root user and the root group.

$ ls -l /media/
total 16
drwxrwx--- 1 root vboxsf 16384 Jan 29 11:02 sf_Shared

In this example, the sf_Shared directory is owned by the root user and the vboxsf group. It is also possible to determine a file's owners and permissions using the stat command:

Owning user:

$ stat -c %U /media/sf_Shared/
root

Owning group:

$ stat -c %G /media/sf_Shared/
vboxsf

Access rights:

$ stat -c %A /media/sf_Shared/
drwxrwx---

Access permissions are displayed in three groups of characters, representing the permissions of the owning user, owning group, and others, respectively. For example, the characters -rw-r--r-- indicate that the file's owner has read and write permission, but not execute (rw-), whilst users belonging to the owning group and other users have only read permission (r-- and r--). Meanwhile, the characters drwxrwx--- indicate that the file's owner and users belonging to the owning group all have read, write, and execute permissions (rwx and rwx), whilst other users are denied access (---). The first character represents the file's type.

List files owned by a user or group with the find command:

# find / -group [group]
# find / -user [user]

A file's owning user and group can be changed with the chown (change owner) command. A file's access permissions can be changed with the chmod (change mode) command.

See man chown, man chmod, and Linux file permissions for additional detail.

檔案清單

警告: 不要手動編輯這些檔案。使用指定工具可以正確處理鎖定問題,並避開任何使資料庫格式無效的風險。請參閱#使用者管理#群組管理瞭解個大概。
檔案 目的
/etc/shadow 保全的使用者帳號資訊
/etc/passwd 使用者帳號資訊
/etc/gshadow 包含群組帳號的影子資訊
/etc/group 定義使用者所屬群組為何
/etc/sudoers 允許執行 sudo 的名單
/home/* 家目錄

使用者管理

who 指令可以用來列出所有登入系統的使用者。

使用 useradd 指令新增使用者:

# useradd -m -g [起始群組] -G [額外群組] -s [登入用 Shell] [使用者名稱]
  • -m 建立使用者的家目錄為 /home/[使用者名稱];一個非 root 的使用者在家目錄內可以寫入、刪除檔案並安裝程式。
  • -g 定義使用者起始登入群組的群組名稱或編號;群組名稱必須存在;若提供群組編號,其指定的群組必須是一個已存在的群組;若未指定此項,useradd 將參考 /etc/login.defs 內所包含的 USERGROUPS_ENAB 變數。
  • -G 引進一個輔助群組清單,讓使用者同時成為這些群組的成員;每個群組以逗號分隔,不包含任何空格;預設情況下,使用者只會隸屬於其起始群組。
  • -s 定義使用者預設登入用 Shell 的路徑與檔名;當開機程序結束後,預設登入用 Shell 就變成所指定的 Shell;若選擇 Bash 以外的 Shell,請確認已經安裝所選 Shell 的軟體包。
警告: 登入 shell 應為 /etc/shells 有列出的 shell。使用 PAM 的程式會藉由 pam_shells 模組檢查。

一個典型桌面系統下的範例:新增 archie 這個使用者,並指定登入用 Shell 為 bash:

# useradd -m -g users -G wheel -s /bin/bash archie

之後若要將使用者加入其它群組,使用

# usermod -aG [額外群組] [使用者名稱]

或是使用 gpasswd。使用者一次只能加入 (或移出) 一個群組。

# gpasswd --add [username] [group]
警告: 若從上面的 usermod 指令拿掉 -a 選項,該使用者將會被踢出所有未列於 [額外群組] 的群組 (也就是說,使用者將只有 [額外群組] 所列舉群組的成員身分)。

若要在 GECOS 欄位 (例如,使用者的全名) 輸入使用者資訊:

# chfn [使用者名稱]

(此方式下 chfn 將以互動模式執行)。

指定使用者的密碼:

# passwd [username]

標示使用者密碼已經過期,要求他們在第一次登入時建立新密碼:

# chage -d 0 [username]

使用者帳號可以使用 userdel 指令刪除。

# userdel -r [username]

-r 選項代表同時刪除該使用者的家目錄與郵件佇列。

使用者資料庫

本機的使用者資訊會儲存在 /etc/passwd 檔案。列出系統上所有使用者帳號:

$ cat /etc/passwd

一行會列出一個帳號,格式如下:

account:password:UID:GID:GECOS:directory:shell

欄位意義:

  • account 為使用者的名稱
  • password 為使用者的密碼
  • UID 為使用者的數字 ID
  • GID 為使用者主群組的數字 ID
  • GECOS 為選填欄位,使用者的個人資;通常包含使用者的全名
  • directory 為使用者的 $HOME 目錄
  • shell 為使用者的指令直譯程式 (預設為 /bin/sh)
註記: Arch Linux 使用影子密碼。由於 passwd 檔案可以無限制地讀取,在該檔案儲存密碼 (雜湊值或其它方式) 非常不安全。password 欄位內只包含一個佔位字元 (x),代表密碼的雜湊值已儲存於存取受限的檔案 /etc/shadow

群組管理

/etc/group 這個檔案定義了系統內的群組 (詳情列於 man group)。

groups 指令顯示使用者所屬群組:

$ groups [使用者]

若忽略[使用者],將顯示目前使用者加入的群組名稱。

id 指令提供更多的詳細資料,像是使用者的 UID 與關聯 GID:

$ id [使用者]

列出系統上所有群組:

$ cat /etc/group

groupadd 指令建立新群組:

# groupadd [群組]

gpasswd 指令將使用者加入群組:

# gpasswd -a [使用者] [群組]

刪除群組:

# groupdel [群組]

將使用者自群組中移除:

# gpasswd -d [使用者] [群組]

若使用者目前已登入,他/她必須登出後再行登入,變動才會生效。

群組清單

使用者群組

註記:
  • 只要 logind 階段沒有損毀,正常的桌面權限如音效、3D、列印、掛載等都能直接獲得,不必加入這些群組。(若要檢查,詳見一般疑難排解#階段權限)。

工作站/桌面使用者通常會將他們的非 root 使用者帳號加入以下某些群組,對周邊設備與其它硬體的存取才會被允許,以便進行系統管理:

群組 影響檔案 目的
camera 存取數位相機
floppy /dev/fd[0-9] 存取軟碟機。
games /var/games 存取某些遊戲軟體。
locate /usr/bin/locate, /var/lib/locate, /var/lib/mlocate, /var/lib/slocate 使用 updatedb 指令的權利。
networkmanager 您的使用者帳號需要這個,才能以 NetworkManager 連上無線網路。這個群組預設不包含進 Arch,必須手動加入。
rfkill /dev/rfkill 控制無線裝置電力狀態的權利 (rfkill 使用)。
users 一般使用者群組。
uucp /dev/ttyS[0-9], /dev/tts/[0-9] 序列與 USB 裝置,如數據機、手持設備、RS-232/序列埠。
wheel 管理性群組,通常用來給予 sudosu 指令的存取 (預設皆不使用,可在 /etc/pam.d/su/etc/pam.d/su-l 設置)。

系統群組

以下群組作為系統用途,不太被一般 Arch 使用者所使用:

註記:
群組 影響檔案 目的
audio /dev/audio, /dev/snd/*, /dev/rtc0 在所有階段對音效硬體的直接存取 (ALSAOSS 皆提出要求)。本機階段已經有能力播放音效、存取混音器控制。
avahi
bin 歷史的遺骸
clamav /var/lib/clamav/*, /var/log/clamav/* Clam AntiVirus 使用。
daemon
dbus /var/run/dbus/*
disk /dev/sda[1-9], /dev/sdb[1-9] 存取區塊裝置,不受 opticalfloppystorage 等群組的影響。
ftp /srv/ftp FTP 伺服器使用,如 Proftpd
fuse fuse 使用,允許使用者掛載。
gdm X 伺服器認證目錄 (ServAuthDir) GDM 群組。
http
kmem /dev/port, /dev/mem, /dev/kmem
log /var/log/* 存取 /var/log 下的日誌檔。
lp /etc/cups, /var/log/cups, /var/cache/cups, /var/spool/cups 存取印表機硬體;讓使用者能夠管理列印工作。
mail /usr/bin/mail
mem
mpd /var/lib/mpd/*, /var/log/mpd/*, /var/run/mpd/*,另外再加上音樂目錄 MPD 群組。
network 改變網路設定值的權利;像是使用 NetworkManager
nobody 沒有權限的群組。
ntp /var/lib/ntp/* NTPd 群組。
optical /dev/sr[0-9], /dev/sg[0-9] 存取光學裝置,如 CD/DVD 光碟機。
policykit PolicyKit 群組。
power 使用 Pm-utils (暫停、休眠...) 與電力管理控制的權利。
root /* 完整的系統管理與控制權 (root, admin)。
scanner /var/lock/sane 存取掃描器硬體。
smmsp sendmail 群組。
storage 存取可移除裝置,如 USB 外接硬碟、快速插拔裝置、MP3 播放器;讓使用者能夠掛載儲存裝置。
sys 管理 CUPS 內印表機的權利。
systemd-journal /var/log/journal/* 提供完整的 systemd 日誌存取。否則只顯示使用者產生的訊息。
tty /dev/tty, /dev/vcc, /dev/vc, /dev/ptmx 例:存取 /dev/ACMx
vboxsf 虛擬機器共享資料夾 VirtualBox 使用。
video /dev/fb/0, /dev/misc/agpgart 存取影像擷取裝置、2D/3D 硬體加速、幀緩衝 (使用 X 不需要加入本群組)。本機階段已經有能力使用硬體加速與影像擷取。

軟體群組

以下群組允許其成員使用特定軟體:

群組 影響檔案 目的
adbusers /dev/ 下的裝置節點 存取「Android 除錯橋接器」(Android Debugging Bridge) 的權利。
cdemu /dev/vhba_ctl 使用 cdemu 驅動模擬的權利。
thinkpad /dev/misc/nvram ThinkPad 使用者用來存取諸如 tpb 等工具。
vboxusers /dev/vboxdrv 使用 VirtualBox 軟體的權利。
vmware 使用 VMware 軟體的權利。
ssh 設定 Sshd,只允許該群組的成員登入。
wireshark Wireshark 抓取封包的權利。

不建議或已不使用的群組

以下群組目前不被任何人使用:

群組 目的
stb-admin 已不再使用!存取 system-tools-backends 的權利
kvm 以前要讓非 root 的使用者存取使用 KVM 的虛擬機器,需要將使用者新增到 kvm 群組。現在會自動使用 udev 規則,因此該群組已不建議使用。