歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

ubuntu用戶管理與權限操作實例

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

一個實例

例子:假設有兩個用戶bill和jane,他們都有音樂CD集,並要創建一個共享目錄,在該目錄下他們各自存儲自己的音樂文件。此時用戶bill通過sudo獲得了超級用戶權限。

首先,創建一個以bill和jane為成員的用戶組。

sudo addgroup music
sudo useradd -g music jane
sudo useradd -g music bill

然後,bill創建了存儲音樂文件的目錄。

sudo mkdir /usr/local/share/music

因為bill正在操作他主目錄之外的文件,所以他需要超級用戶權限,新創建的目錄如下:

ls -ld /usr/local/share/music
drwxr-xr-x 2 root root 4096 Jun 22 12:10 /usr/local/share/music

這個主目錄為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

所以目前music群組就擁有了對music目錄的讀寫權限,music的成員bill和jane也具有相同的權限,其他用戶可以查看該目錄,而不能修改該目錄。

修改默認掩碼:仍然有一個問題,在當前權限下,每個用戶創建的文件和目錄擁有bill和jane的常規權限;

touch 12;ls -l
-rw-r--r-- 1 bill music 0 Jun 22 12:20 12

由於系統中默認掩碼是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

此時創建的文件和目錄都具有正確的權限,允許用戶組內成員在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不用口令執行一切操作

管理員需要允許gem用戶在主機sun上執行reboot和shutdown命令,在/etc/sudoers中加入:

gem sun=/usr/sbin/reboot,/usr/sbin/shutdown
sudo –l會顯示當前用戶在sudo模式下可以執行的權限。

chown—更改文件所有者和所用戶組,這個命令需要超級用戶權限:

chown [ower][:[group]] file…

該命令更改的是文件所有者還是文件所用戶組,取決於該命令的第一個參數。

chown bob file  把文件所有者從當前所有者更改為用戶bob
chown bob:users file 把文件所有者更改為bob,所用戶組更改為users
chown :admins file  把文件所用戶組改為admins
chown bob: file  把文件所有者更改為用戶bob,所用戶組改為用戶bob登錄時的所屬的組

添加用戶的方法

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)

注意這裡有很多選項,可直接將用戶加入用戶組

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,有很多選項,可實現密碼、根目錄、用戶組等

添加用戶組的方法

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修改用戶組屬性

添加用戶至用戶組

adduser USER GROUP(sudo adduser mountzf music)添加已存在的用戶至已存在的用戶組
usermod –G/-g GROUP USER(usermod命令用來改變用戶賬號狀態)

如果一個用戶同時屬於多個用戶組,那麼用戶可以在用戶組之間切換,以便具有其他用戶組的權限。用戶可以在登錄後,使用命令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 
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]的進程。

刪除用戶組

delgroup GROUP
deluser --group GROUP
  --system                  only remove if system group
  --only-if-empty           only remove if no members left
groupdel [options] GROUP

從用戶組中刪除用戶

deluser USER GROUP(sudo deluser mountzf music)但是不能從主用戶組中移除

查看用戶組

cat /etc/group   music:x:1001:mountzf,jane同時可以顯示該用戶組中的用戶成員(不包括以該組為主組的成員)
groups 查看當前用戶所屬的用戶組,當前用戶組排在最前面
groups user 查看用戶user所屬的用戶組

查看用戶

id/whoami查看當前用戶
w/who查看當前登錄的用戶
cat /etc/passwd查看所有用戶列表

增加用戶賬號就是在/etc/passwd文件中為新用戶增加一條記錄,同時更新其他系統文件如/etc/shadow, /etc/group等。

用戶口令管理

passwd:超級用戶可以為自己和普通用戶指定口令,而普通用戶只能修改自己口令。
passwd修改自己的口令
passwd user超級用戶修改user的口令
  -l 鎖定口令,即禁用賬號。
  -u 口令解鎖。
  -d 使賬號無口令。
  -f 強迫用戶下次登錄時修改口令。

與用戶管理有關的文件

完成用戶管理的工作有多種方法,但是每一種方法實際上都是對有關的系統文件進行修改,這些文件包括/etc/passwd, /etc/shadow, /etc/group等。

/etc/passwd

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

mountzf:x:1000:1000:mountzf,,,:/home/mountzf:/bin/bash
用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄Shell

系統中有一類用戶稱為偽用戶(psuedo users),這些用戶在/etc/passwd文件中也占有一條記錄,但是不能登錄,因為它們的登錄Shell為空。它們的存在主要是方便系統管理,滿足相應的系統進程對文件屬主的要求。

/etc/shadow

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

/etc/group

用戶組的所有信息都存放在/etc/group文件中。

以上就是我這兩天在ubuntu系統中學習用戶管理和文件/目錄權限操作所涉及的內容。

Copyright © Linux教程網 All Rights Reserved