Tạo một quy tắc như vậy:
ALL ALL=(ALL:ALL) NOPASSWD: /bin/mkdir www ""
Đây đọc một cái gì đó như: "Cho phép bất kỳ người sử dụng trên bất kỳ tên miền để hoạt động như bất kỳ người sử dụng: nhóm mà không yêu cầu nhập mật khẩu để thực hiện lệnh chính xác 'mkdir www' (chỉ sử dụng /bin/mkdir
, chứ không phải một số khác mkdir
) Tập kết thúc của trích dẫn nói. sudo
Không để cho phép bất kỳ đối số hơn nữa.
(Các quy tắc được xác định theo thứ tự quy tắc khớp cuối cùng có hiệu lực. Nếu bạn có một quy tắc khác sau quy tắc này sẽ bao gồm cùng một lệnh (chẳng hạn như TẤT CẢ) thì nó sẽ có hiệu lực thay thế. Tôi gặp vấn đề trong cấu hình của chính mình khi tôi ở chỉ định %sudo ALL=(ALL:ALL) ALL
sau đó. Vì quy tắc này phù hợp với tình huống, nhưng yêu cầu mật khẩu, mật khẩu đã được yêu cầu.)
Thực sự đây không phải là cách để làm một cái gì đó như thế này. Các phần trong mô tả của bạn ngụ ý rằng bạn có những thứ được thiết lập một cách kỳ quái. Tôi sẽ không tham gia vào điều đó vì nó nằm ngoài phạm vi nhưng, để thực hiện những gì bạn muốn và linh hoạt hơn, có thể có một cách tốt hơn. Có vẻ như bạn muốn cho phép người dùng tạo thư mục con với một tên cụ thể thuộc sở hữu của chủ sở hữu thư mục mẹ. Thay vào đó, hãy tạo một tập lệnh thực hiện những gì bạn muốn (tra cứu thư mục hiện tại, xác định chủ sở hữu và nhóm của nó, tạo một thư mục www
ở đây, chmod
thư mục mới cho người dùng và nhóm được xác định.) Và có kịch bản được cho phép chạy bằng root không có mật khẩu trong sudo
cấu hình. Làm theo cách này có nghĩa là người dùng chỉ phải điều hướng đến thư mục sau đósudo create-www
hay bất cứ cái gì. Bạn cũng sẽ có thể định cấu hình các quy tắc khác trong tập lệnh, chẳng hạn như các quy tắc chỉ cho phép www
được tạo trong các thư mục nhất định.