① linux:chmod -R 777 * 是什麼意思
首先,chmod命令是linux上用於改變許可權的命令,-R 是遞歸遍歷子目錄,因為你要操作的文件使用的*通配符。777,第一個7代表文件所屬者的許可權,第二個7代表文件所屬者所在組的許可權,第三個7代表其它用戶的許可權,7=4+2+1,在linux中許可權是可以通過數字來描述的。具體表示如下:
4,執行時設置用戶ID,用於授權給基於文件屬主的進程,而不是給創建此進程的用戶。
2,執行時設置用戶組ID,用於授權給基於文件所在組的進程,而不是基於創建此進程的用戶。
1,設置粘著位。
其次,chmod命令的詳細使用如下,有不懂的可以慢慢查看一下。
chmod----改變一個或多個文件的存取模式(mode)
chmod [options] mode files
只能文件屬主或特權用戶才能使用該功能來改變文件存取模式。mode可以是數字形式或以who opcode permission形式表示。who是可選的,默認是a(所有用戶)。只能選擇一個opcode(操作碼)。可指定多個mode,以逗號分開。
options:
-c,--changes
只輸出被改變文件的信息
-f,--silent,--quiet
當chmod不能改變文件模式時,不通知文件的用戶
--help
輸出幫助信息。
-R,--recursive
可遞歸遍歷子目錄,把修改應到目錄下所有文件和子目錄
--reference=filename
參照filename的許可權來設置許可權
-v,--verbose
無論修改是否成功,輸出每個文件的信息
--version
輸出版本信息。
who
u
用戶
g
組
o
其它
a
所有用戶(默認)
opcode
+
增加許可權
-
刪除許可權
=
重新分配許可權
permission
r
讀
w
寫
x
執行
s
設置用戶(或組)的ID號
t
設置粘著位(sticky bit),防止文件或目錄被非屬主刪除
u
用戶的當前許可權
g
組的當前許可權
o
其他用戶的當前許可權
作為選擇,我們多數用三位八進制數字的形式來表示許可權,第一位指定屬主的許可權,第二位指定組許可權,第三位指定其他用戶的許可權,每位通過4(讀)、2(寫)、1(執行)三種數值的和來確定許可權。如6(4+2)代表有讀寫權,7(4+2+1)有讀、寫和執行的許可權。
還可設置第四位,它位於三位許可權序列的前面,第四位數字取值是4,2,1,代表意思如下:
4,執行時設置用戶ID,用於授權給基於文件屬主的進程,而不是給創建此進程的用戶。
2,執行時設置用戶組ID,用於授權給基於文件所在組的進程,而不是基於創建此進程的用戶。
1,設置粘著位。
實例:
$ chmod u+x file 給file的屬主增加執行許可權
$ chmod 751 file 給file的屬主分配讀、寫、執行(7)的許可權,給file的所在組分配讀、執行(5)的許可權,給其他用戶分配執行(1)的許可權
$ chmod u=rwx,g=rx,o=x file 上例的另一種形式
$ chmod =r file 為所有用戶分配讀許可權
$ chmod 444 file 同上例
$ chmod a-wx,a+r file 同上例
$ chmod -R u+r directory 遞歸地給directory目錄下所有文件和子目錄的屬主分配讀的許可權
$ chmod 4755 設置用ID,給屬主分配讀、寫和執行許可權,給組和其他用戶分配讀、執行的許可權。
② 在 Linux 上給用戶賦予指定目錄的讀寫許可權
在 Linux 上指定目錄的讀寫許可權賦予用戶,有兩種方法可以實現這個目標:第一種是使用 ACL (訪問控制列表),第二種是創建用戶組來管理文件許可權,下面會一一介紹。為了完成這個教程,我們將使用以下設置:
請確認所有的命令都是使用 root 用戶執行的,或者使用 sudo 命令來享受與之同樣的許可權。讓我們開始吧!下面,先使用 mkdir 命令來創建一個名為 share 的目錄。
1. 使用 ACL 來為用戶賦予目錄的讀寫許可權
重要提示: 打算使用此方法的話,您需要確認您的 Linux 文件系統類型(如 ext3 和 ext4, NTFS, BTRFS)支持 ACL。
1.1. 首先, 依照以下命令在您的系統中檢查當前文件系統類型,並且查看內核是否支持 ACL:
從下方的截屏可以看到,文件系統類型是 ext4,並且從 CONFIG_EXT4_FS_POSIX_ACL=y 選項可以發現內核是支持 POSIX ACL 的。
[圖片上傳失敗...(image-c85622-1574572716190)]
1.2. 查看文件系統(分區)掛載時是否使用了 ACL 選項。
[圖片上傳失敗...(image-bdb4d9-1574572716190)]
通過上邊的輸出可以發現,默認的掛載項目中已經對 ACL 進行了支持。如果發現結果不如所願,你可以通過以下命令對指定分區(此例中使用 /dev/sda3)開啟 ACL 的支持)。
1.3. 指定目錄 share 的讀寫許可權分配給名為 shenweiyan 的用戶了,依照以下命令執行即可。
[圖片上傳失敗...(image-dfb909-1574572716190)]
在上方的截屏中,通過輸出結果的第二行 getfacl 命令可以發現,用戶 shenweiyan 已經成功的被賦予了 /data/share 目錄的讀寫許可權。
如果想要獲取 ACL 列表的更多信息。請參考:
2. 使用用戶組來為用戶賦予指定目錄的讀寫許可權
2.1. 如果用戶已經擁有了默認的用戶組(通常組名與用戶名相同),就可以簡單的通過變更文件夾的所屬用戶組來完成。
另外,我們也可以通過以下方法為多個用戶(需要賦予指定目錄讀寫許可權的)新建一個用戶組。如此一來,也就創建了一個共享目錄。
2.2. 接下來將用戶 shenweiyan 添加到 dbshare 組中:
2.3. 將目錄的所屬用戶組變更為 dbshare:
2.4. 現在,給組成員設置讀寫許可權。
ok,在 Linux 上給用戶賦予指定目錄的讀寫許可權就介紹到這里 !
參考資料:
③ Linux 能否實現用戶登錄運行腳本
可以。用戶登錄時,Bash 首先執行全局登錄腳本(由 root 建立) /etc/profile,然後在用戶起始目錄下依次尋找 .bash_profile、.bash_login、.profile 三個文件,執行最先找到的一個。可以用這種辦法像 Netware 一樣為不同的用戶定製運行環境。 此外,用戶退出登錄時還可以運行 .bash_logout 腳本。
免費提供最新Linux技術教程書籍,入門自學書籍《linux就該這么學》,為開源技術愛好者努力做得更多更好
④ Linux下 su命令與su - 命令有什麼區別
Linux下 su命令與su - 命令的區別:
一、切換root身份不同
1、su命令:su只是切換了root身份,但Shell環境仍然是普通用戶的Shell;而su -連用戶和Shell環境一起切換成root身份了。只有切換了Shell環境才不會出現PATH環境變數錯誤,報command not found的錯誤。
2、su - 命令:su切換成root用戶以後,pwd一下,發現工作目錄仍然是普通用戶的工作目錄;而用su -命令切換以後,工作目錄變成root的工作目錄了。
二、採用su deploy命令後,取目標用戶不同
1、su命令:su不會讀取目標用戶的環境配置文件,如圖。
綜上總結:有「-」和無「-」各自的環境變數不同。
三、service命令
1、su命令:使用 su root 切換到root用戶後,不可以使用service命令;
2、su - 命令:使用 su - 後,就可以使用service命令了。
四、用echo $PATH命令後,環境量不同
1、su命令:環境量變為usr。
2、su - 命令:環境量變為oracle。