Tôi đang thực hiện tập lệnh bash shell và tôi muốn thay đổi nhóm mặc định mà các tệp mới được tạo dưới dạng. Tôi biết bạn sử dụng umask
để thay đổi quyền. Có gì cho nhóm không?Bash Scripting - Làm thế nào để thiết lập nhóm các tập tin mới sẽ được tạo ra?
Trả lời
newgrp
(1)
Có một vài cách để làm điều này:
Bạn có thể thay đổi nhóm mặc định cho tất cả các file được tạo ra trong một thư mục cụ thể bằng cách thiết lập cờ setgid trên thư mục (
chmod g+s _dir_
). Các tệp mới trong thư mục sau đó sẽ được tạo bằng nhóm của thư mục (được đặt bằngchgrp <group> <dir>
). Điều này áp dụng cho bất kỳ chương trình nào tạo tệp trong thư mục.Lưu ý rằng đây là Automagically kế thừa cho các thư mục con mới (tính Linux 3.10), tuy nhiên, nếu thư mục con đều đã có mặt, sự thay đổi này sẽ không được áp dụng đối với họ (sử dụng cờ
-R
cho điều đó).Nếu cờ setgid không được đặt, thì nhóm mặc định sẽ được đặt thành id nhóm hiện tại của quá trình tạo. Mặc dù điều này có thể được đặt bằng cách sử dụng lệnh
newgrp
, điều này tạo ra một trình bao mới khó sử dụng trong một tập lệnh shell . Nếu bạn muốn thực hiện một lệnh cụ thể (hoặc tập lệnh) với nhóm đã thay đổi, hãy sử dụng lệnhsg <group> <command>
.sg
không phải là lệnh chuẩn POSIX nhưng có sẵn trên Linux.
Chỉ là một lưu ý nhỏ. Nếu bạn cố gắng chạy 'chmod g + s _dir_' trên một thư mục có nhóm y, và bạn đang chạy lệnh dưới người dùng x, và người dùng x không phải là thành viên của nhóm y nó sẽ không hoạt động. Bạn sẽ phải chạy nó như là người chủ. – LEDfan
- 1. Bash scripting, lặp qua tập tin trong thư mục không
- 2. Làm thế nào để tạo ra tập tin chơi heroku?
- 3. Làm thế nào để lập trình tạo ra một tập tin "true" Excel
- 4. bash scripting thách thức
- 5. Làm thế nào để tìm thấy sự khác biệt thiết lập của hai tập tin?
- 6. Làm thế nào để lưu các thiết lập ứng dụng trong một tập tin cấu hình?
- 7. Fstream không tạo được tập tin mới
- 8. fstream sẽ không tạo ra một tập tin
- 9. Làm thế nào để thay đổi thư mục tập tin đầu ra dựa trên thiết bị
- 10. Làm thế nào tôi nên được thiết lập tập tin browscap.ini
- 11. Thực hiện một tập lệnh bash khi tạo tập tin
- 12. Làm thế nào để tránh một tập lệnh bash không thành công khi tùy chọn -e được thiết lập?
- 13. Làm thế nào để làm cho AWK sử dụng biến được tạo ra trong Bash Script
- 14. Làm thế nào để bao gồm một bộ đếm thời gian trong Bash Scripting?
- 15. Thiết khung đúng của một mới được tạo ra CAShapeLayer
- 16. Unix: Làm thế nào để xóa các tập tin được liệt kê trong một tập tin
- 17. Làm cách nào để tạo hồ bơi ứng dụng mới trong Dự án Thiết lập Web?
- 18. Làm thế nào để °, ± & ² tạo ra ░, ▒ & ▓ trong tập tin batch này?
- 19. Làm thế nào để tạo tập tin crx chrome lập trình (tốt nhất là trong java)?
- 20. Làm thế nào thường python tuôn ra một tập tin?
- 21. Làm thế nào để Thiết lập hình nền riêng cho nhóm của UIButtons bởi lập trình
- 22. $ * trong bash scripting
- 23. Bash Scripting - vỏ lệnh đầu ra chuyển hướng
- 24. Làm thế nào để thiết lập kết hợp với nhóm trong ng-lưới
- 25. làm thế nào để tạo ra một cửa sổ với hai nút đó sẽ mở ra một cửa sổ mới
- 26. Làm thế nào để tạo ra enum từ tập tin thuộc tính trong Maven?
- 27. Trong bash, làm thế nào để mở một mô tả tập tin có thể ghi được chuyển hướng bên ngoài?
- 28. Làm thế nào để lập trình/cập nhật một tập tin TAGS bằng các emacs?
- 29. Làm thế nào tôi có thể thiết lập đúng Hình nền của một TableView được nhóm?
- 30. Làm thế nào để ký số hóa tập tin cài đặt tạo ra Inno Setup?
Tôi là thành viên của nhóm, vậy tại sao tôi yêu cầu mật khẩu? Nó không thích mật khẩu của tôi! – Michael
cũng vậy, nếu tôi chạy "newgrp" làm gốc (ví dụ: chạy tập lệnh với newgrp trong đó bằng sudo), nó sẽ đưa tôi vào trình bao gốc. –
Michael
Đây không phải là những gì newgrp nên được sử dụng cho. Điều gì sẽ xảy ra nếu bạn quên sử dụng newgrp bên ngoài kịch bản? Kịch bản sẽ xử lý shell mới mà newgrp tạo ra như thế nào. Câu trả lời của @ mark40 là tốt hơn. – noel