1. 程式人生 > >轉載 ubuntu使用者管理與許可權操作例項

轉載 ubuntu使用者管理與許可權操作例項

原文地址https://blog.csdn.net/mountzf/article/details/51733572

ubuntu使用者管理與許可權操作例項
昨天在轉載此文時提到都要把檔案及目錄許可權的操作也會獨立成文來給大家介紹,今天特地學習了使用者管理和許可權操作的例程,現總結如下。這些命令基本都是我在自己電腦上執行過後能夠實現此功能,我才把他們加進來,希望對大家有所幫助,也希望和大家多交流^_^

一個例項
例子:假設有兩個使用者bill和jane,他們都有音樂CD集,並要建立一個共享目錄,在該目錄下他們各自儲存自己的音樂檔案。此時使用者bill通過sudo獲得了超級使用者許可權。

首先,建立一個以bill和jane為成員的使用者組。

sudo addgroup music
sudo useradd -g music jane
sudo useradd -g music bill
1
2
3
然後,bill建立了儲存音樂檔案的目錄。

sudo mkdir /usr/local/share/music
1
因為bill正在操作他主目錄之外的檔案,所以他需要超級使用者許可權,新建立的目錄如下:

ls -ld /usr/local/share/music
drwxr-xr-x 2 root root 4096 Jun 22 12:10 /usr/local/share/music
1
2
這個主目錄為root所有,且許可權值為755,要使該目錄共享,bill需要更改該目錄的所屬群組,而且該群組要擁有寫入許可權。

sudo chown :music /usr/local/share/music
sudo chmod 775 /usr/local/share/music
ls -ld /usr/local/share/music
drwxrwxr-x 2 root music 4096 Jun 22 12:10 /usr/local/share/music
1
2
3
4
所以目前music群組就擁有了對music目錄的讀寫許可權,music的成員bill和jane也具有相同的許可權,其他使用者可以檢視該目錄,而不能修改該目錄。

修改預設掩碼:仍然有一個問題,在當前許可權下,每個使用者建立的檔案和目錄擁有bill和jane的常規許可權;

touch 12;ls -l
-rw-r--r-- 1 bill music 0 Jun 22 12:20 12
1
2
由於系統中預設掩碼是0022,導致該使用者組的其他成員不能寫入該檔案,所以需要把bill和jane的預設掩碼值修改為0002。

drwxrwxr-x 2 bill music 4096 Jun 22 12:25 bill
drwxrwxr-x 2 jane music 4096 Jun 22 12:24 jane
1
2
此時建立的檔案和目錄都具有正確的許可權,允許使用者組內成員在music目錄下建立檔案和目錄。

linux檔案/目錄模式(許可權)與使用者管理
傳統的UNIX作業系統與傳統的MS-DOS作業系統的不同之處在於它不僅是多重任務處理系統,而且是多使用者系統。意味著同一時間內可以有多個使用者使用同一臺計算機。

linux檔案/目錄模式管理
chomod檔案模式(許可權):只有超級使用者和檔案所有者才可以更改許可權。chmod支援八進位制和字元表示法兩種方法來改變檔案模式。

rwx(0|1)(0|1)(0|1)讀 寫 執行

chmod支援一種符號表示法來指定檔案模式,該符號表示法分為三部分:更改會影響誰、要執行哪個操作、要設定哪種許可權。可以通過u(user,檔案目錄所有者)、g(group檔案所使用者組)、o(others,其他使用者)、a(all所有)的組合來制定要影響的物件,如果沒有指定,則預設使用all。操作符+表示新增一種許可權,-表示刪除一種許可權,=表示只有指定許可權可用,其他許可權都被刪除。
指定多種許可權時,需用逗號分隔:u+x,go=rx。符號表示法的優點在於允許設定單個屬性,而不影響其他的任何屬性。

umask——設定預設許可權:umask命令控制著建立檔案時指定給檔案的預設許可權,它用八進位制表示法表示從該檔案模式屬性中刪除一個位掩碼。總共為4位(gid/uid,屬主,組權,其它使用者的許可權),不過通常用到的是後3個,對於新建立的目錄,其預設模式為~umask&(0777),對於新建立的檔案則是~umask&(0666)。例如umask=0002,則建立目錄的預設模式為0775,建立檔案預設模式為0664。掩碼的二進位制數值中每個出現1的位置,其對應屬性就被取消。
root 的 umask 為 0022,而一般使用者則為 0002 ,因為可寫的許可權蠻嚴重的,因此預設都會拿掉這個許可權!此外,因為 root 比較重要!所以為了安全的需求,其同群組的寫入屬性就被拿掉了!這東西對於安全性也有一定程度的貢獻呦!

linux使用者管理
賦予普通身份特殊許可權
su—以其他使用者和組ID的身份來執行shell:su [-[l]] [user],-l顯示登陸介面,可縮寫為-。也可以使用su命令執行單個命令,而不需要開啟一個新的互動式命令介面:su –c ‘command’,注意命令需要用單引號括起來。(在ubuntu 14.04中要使用該功能,就需要首先在root許可權下設定root密碼:passwd root,然後才能使用su命令)。
sudo—以另一個使用者的身份執行命令:和su功能類似,但是sudo命令並不需要輸入超級使用者密碼。使用sudo命令,使用者只需要輸入自己的密碼來進行認證。並且僅能執行預設的許可權。
sudo工具由檔案/etc/sudoers進行配置,該檔案包含所有可以訪問sudo工具的使用者列表並定義了他們的特權。

liming ALL=(ALL) ALL
ADMINS ALL=(ALL) NOPASSWD: ALL 表示允許ADMINS不用口令執行一切操作
1
2
管理員需要允許gem使用者在主機sun上執行reboot和shutdown命令,在/etc/sudoers中加入:

gem sun=/usr/sbin/reboot,/usr/sbin/shutdown
sudo –l會顯示當前使用者在sudo模式下可以執行的許可權。
1
2
chown—更改檔案所有者和所使用者組,這個命令需要超級使用者許可權:

chown [ower][:[group]] file…
1
該命令更改的是檔案所有者還是檔案所使用者組,取決於該命令的第一個引數。

chown bob file 把檔案所有者從當前所有者更改為使用者bob
chown bob:users file 把檔案所有者更改為bob,所使用者組更改為users
chown :admins file 把檔案所使用者組改為admins
chown bob: file 把檔案所有者更改為使用者bob,所使用者組改為使用者bob登入時的所屬的組
1
2
3
4
新增使用者的方法
adduser [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID][--firstuid ID] [--lastuid ID] [--gecos GECOS] [--ingroup GROUP | --gid ID][--disabled-password] [--disabled-login] [--encrypt-home] USER新增普通使用者(sudo adduser mountzf)
1
注意這裡有很多選項,可直接將使用者加入使用者組

adduser --system [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID][--gecos GECOS] [--group | --ingroup GROUP | --gid ID] [--disabled-password] [--disabled-login] USER新增系統使用者

useradd [options] LOGIN,有很多選項,可實現密碼、根目錄、使用者組等
1
2
3
新增使用者組的方法
adduser --group [--gid ID] GROUP(sudo adduser --group media)
addgroup [--gid ID] GROUP (sudo addgroup document)
addgroup --system [--gid ID] GROUP加入—system選項表示新增系統使用者組
groupadd [options] GROUP(sudo groupadd music)
groupmod修改使用者組屬性
1
2
3
4
5
新增使用者至使用者組
adduser USER GROUP(sudo adduser mountzf music)新增已存在的使用者至已存在的使用者組
usermod –G/-g GROUP USER(usermod命令用來改變使用者賬號狀態)
1
2
如果一個使用者同時屬於多個使用者組,那麼使用者可以在使用者組之間切換,以便具有其他使用者組的許可權。使用者可以在登入後,使用命令newgrp切換到其他使用者組,這個命令的引數就是目的使用者組。例如:newgrp root

刪除使用者
deluser USER
--remove-home remove the users home directory and mail spool
--remove-all-files remove all files owned by user
--backup backup files before removing.
--backup-to <DIR> target directory for the backups. Default is the current directory.
--system only remove if system user

userdel [options] LOGIN
-f, --force force removal of files, even if not owned by user
-h, --help display this help message and exit
-r, --remove remove home directory and mail spool
-R, --root CHROOT_DIR directory to chroot into
-Z, --selinux-user remove any SELinux user mapping for the user
kill -9 [pid]刪除程序號為[pid]的程序。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
刪除使用者組
delgroup GROUP
deluser --group GROUP
--system only remove if system group
--only-if-empty only remove if no members left
groupdel [options] GROUP
1
2
3
4
5
從使用者組中刪除使用者
deluser USER GROUP(sudo deluser mountzf music)但是不能從主使用者組中移除
1
檢視使用者組
cat /etc/group music:x:1001:mountzf,jane同時可以顯示該使用者組中的使用者成員(不包括以該組為主組的成員)
groups 檢視當前使用者所屬的使用者組,當前使用者組排在最前面
groups user 檢視使用者user所屬的使用者組
1
2
3
檢視使用者
id/whoami檢視當前使用者
w/who檢視當前登入的使用者
cat /etc/passwd檢視所有使用者列表
1
2
3
增加使用者賬號就是在/etc/passwd檔案中為新使用者增加一條記錄,同時更新其他系統檔案如/etc/shadow, /etc/group等。

使用者口令管理
passwd:超級使用者可以為自己和普通使用者指定口令,而普通使用者只能修改自己口令。
passwd修改自己的口令
passwd user超級使用者修改user的口令
  -l 鎖定口令,即禁用賬號。
  -u 口令解鎖。
  -d 使賬號無口令。
  -f 強迫使用者下次登入時修改口令。
1
2
3
4
5
6
7
與使用者管理有關的檔案
完成使用者管理的工作有多種方法,但是每一種方法實際上都是對有關的系統檔案進行修改,這些檔案包括/etc/passwd, /etc/shadow, /etc/group等。

/etc/passwd
/etc/passwd檔案是使用者管理工作涉及的最重要的一個檔案,/etc/passwd中一行記錄對應著一個使用者,其格式和具體含義如下:

mountzf:x:1000:1000:mountzf,,,:/home/mountzf:/bin/bash
使用者名稱:口令:使用者標識號:組標識號:註釋性描述:主目錄:登入Shell
1
2
系統中有一類使用者稱為偽使用者(psuedo users),這些使用者在/etc/passwd檔案中也佔有一條記錄,但是不能登入,因為它們的登入Shell為空。它們的存在主要是方便系統管理,滿足相應的系統程序對檔案屬主的要求。

/etc/shadow
/etc/shadow中的記錄行與/etc/passwd中的一一對應,它由pwconv命令根據/etc/passwd中的資料自動產生。

/etc/group
使用者組的所有資訊都存放在/etc/group檔案中。

以上就是我這兩天在ubuntu系統中學習使用者管理和檔案/目錄許可權操作所涉及的內容。

祝楓
2016年6月22日於深圳
---------------------
作者:mountzf
來源:CSDN
原文:https://blog.csdn.net/mountzf/article/details/51733572
版權宣告:本文為博主原創文章,轉載請附上博文連結!