簡體   English   中英

如何自動更改目錄中每個文件的所有權

[英]How to automatically change the ownership of every files in a directory

有一個外部服務器將一些文件存放在我計算機的文件夾中。 我需要自動更改在該文件夾中創建的每個文件的用戶所有權。

我看到很多答案說我可以通過 setfacl 更改 GROUP 所有權(根據我的研究,不可能通過 setfacl 更改 USER 所有權)。

在這種情況下,我不能,因為用戶 A(不是 root)擁有一個腳本,該腳本將修改用戶 B 擁有的這個存放文件,而您只能修改您擁有的文件。

而不是這個(在腳本內):

chmod 777 /folder/file.txt

我試過這個:

sudo chmod 777 /folder/file.txt

但是要求輸入密碼,BAM!

你對如何處理這個問題有什么想法嗎?

我錯過了什么嗎?

我不確定你想達到什么目的,所以這里有一些建議:

  • 如果目標只是讓文件具有特定的權限設置,並且所有權更改是次要的,您可以在源計算機上正確設置權限,然后使用保留權限的傳輸方法(scp -p 或類似的)

  • 請注意,由A擁有的腳本仍然可以被B運行,如果A已正確設置權限(組和其他可執行位)。 當 B 運行 A 的腳本時,它以 B 的權限運行,因此更改 B 文件的權限位將起作用

  • 如果必須更改所有權,您可以將文件傳輸到 B,確保 A 具有讀取權限(見上文),然后讓 A 使用 cp 命令將文件復制到 A 自己的目錄。 該副本將由 A 擁有,因此 A 可以更改副本的權限。 之后,運行一些常規進程來清理 B 的目錄以節省空間(如果這是一個問題)

  • 或者,您可以讓源計算機上的 B 登錄到接收計算機上 A 的帳戶,然后該文件最終歸 A 所有。 如果您不想將 A 的密碼提供給 B,則可以使用 ssh 證書執行此操作。 但是當然這還有其他的安全隱患,所以上面的cp方法更安全

  • 最后,在 unix 上,使文件可寫給“其他”通常不是一個好主意,通常甚至不是“組”,因此 775 或 755 的權限設置更安全和更受歡迎。 否則,同一台計算機上的任何人都可以修改該文件或使其成為空文件。 即使在私人計算機上,這也是一種很好的做法,因為這些文件中的一個遲早會被復制到多用戶系統中,並且沒有人記得檢查權限

希望其中一些提示有用。

一種方法可能是在父目錄上使用組粘滯位。 這可確保在創建文件時為其所在的目錄賦予相同的組所有權。

在大多數情況下,這已經足夠了,因為您可以確保該組是文件創建者和用戶都是其成員的組,因此他們都可以訪問文件。

您可以粘貼目錄的用戶 ID,但這在組織中幾乎總是錯誤的做法,因為它只會讓那個人離開並且目錄溢出。

chown owner:group directory -R

例子:

chown root:root sysadmin -R

嘗試這個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM