Linux系統下的帳號管理學習
linux是多用戶操作系統,每一個用戶在系統上都有一個唯一的id,這個id就是UID。
sh-3.2# id uid=0(root) gid=0(root) sh-3.2# |
id是一個數字,用戶很難去記得一個數字到底對應的是哪個用戶。
所以可以給每個用戶分配一個用戶名,這個用戶名是用戶敏感的。
用戶名和UID的對應關系可以通過查看/etc/passwd知道,
sh-3.2# cat /etc/passwd root:x:0:0:root:/home:/bin/sh sh-3.2# |
linux系統還有群組的概念,每個用戶在創建時可能就被指定到某個群組中。
而為了方便對群組的管理,所以也有了GID。
群組名和GID的對應關系可以通過查看/etc/group知道,
sh-3.2# cat /etc/group root:x:0:root sh-3.2# |
而群組又分為有效群組和初始群組,
用戶所對應的初始群組可以查看/etc/passwd檔案了解其中的對應關系;
用戶所在的有效群組可以通過groups命令查看當前用戶支援哪些群組。
sh-3.2# groups
root
sh-3.2#
以前一直搞不明白為什么文件權限是775,777,664或者是rwxrw-r-x之類的字串。
現在學習了用戶和用戶組之后,終于知道為什么了,還是挺開心的。
sh-3.2# ls -lh /etc/passwd -rw-rw-r-- 1 root root 31 Jan 3 12:55 /etc/passwd sh-3.2# |
在上面文件權限這一欄中,第一個字符用來標識檔案的類型,
是正規文件,還是目錄,還是管道,還是鏈接文件?
關于linux系統文件類型可以參考下面這篇文章,
http://blog.csdn.net/boyxulin1986/article/details/12655659
接下來三個字符表示的是文件所有者對文件所具有的權限;
在接下來三個字符表示的是文件所有者所在的群組所具有的權限;
在接下來的三個字符表示的是其它用戶對文件所具有的權限。
所以如果想知道擁有某個指定文件的哪些權限,
必須要知道文件擁有者是誰,再查看用戶與群組的對應關系。
這樣再確定當前用戶是文件擁有者、還是屬于文件擁有者所屬的群組還是其他用戶。
注意:在多用戶環境下,文件擁有者并不一定等于當前用戶。
查看當前用戶的方法是:
sh-3.2# id uid=0(root) gid=0(root) sh-3.2# |
查看文件擁有者的方法是:
sh-3.2# stat /etc/passwd File: "/etc/passwd" Size: 31 Blocks: 1 IO Block: 4096 regular file Device: fe00h/65024d Inode: 985 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2014-01-03 12:55:32.000000000 Modify: 2014-01-03 12:55:32.000000000 Change: 2014-01-03 12:55:32.000000000 sh-3.2# |
最后再了解一下文件權限中的sticky bit。
sh-# ls -ld /tmp/
drwxrwxrwt 5 root root 1020 Jan 1 00:03 /tmp/
sh-#
這個權限t就是目錄或檔案的sticky bit。
linux系統中的sticky bit只對目錄有效,對文件設置sticky bit是沒有意義的。
而對目錄設置sticky bit的作用是:
對于目錄中已有的文件,只有文件的owner和root有權限刪除;
任何用戶都可以在這個目錄下創建或修改文件。
這樣對于多用戶環境而言,就不用擔心檔案被其它用戶刪除了。
增加sticky權限的方法如下,
sh-# mkdir ./temp sh-# ls -ld ./temp/ drwxr-xr-x 2 root root 40 Jan 1 00:21 ./temp/ sh-# sh-# chmod +t ./temp/ sh-# sh-# ls -ld ./temp/ drwxr-xr-t 2 root root 40 Jan 1 00:21 ./temp/ sh-# sh-# umask 0022 sh-# |
posted on 2014-01-13 10:54 順其自然EVO 閱讀(197) 評論(0) 編輯 收藏 所屬分類: linux