sử dụng root để mkdir trong thư mục nhà của người dùng khác


27

có một chút khó khăn khi cố gắng tạo một thư mục trong /home/devuser1/pubic_htmlthư mục của người dùng khác . Tôi đang cố gắng tránh sử dụng sudovà tìm kiếm một sự thay thế. Các quyền trên thư mục đã nói là:

drwxr-s--- 2 devuser1  www-data 4096 Apr 28 19:40 public_html

Ngoài ra, giả sử tôi sử dụng sudotiền tố, ý nghĩa của nó là gì? Tôi đã đọc rằng đó là thực tế xấu để sử dụng sudođể tạo một thư mục. Sau khi thư mục mới được tạo, tôi vẫn thay đổi quyền sở hữu của nó cho người dùng được đề cập. Thí dụ:

chown -vR devuser1:www-data /home/devuser1/public_html/$vhost

Câu trả lời:


31

Với install, bạn có thể tạo một thư mục với chủ sở hữu, nhóm và chế độ cụ thể:

install -d -o <user> -g <group> -m <mode> <path>

29

sudo -u [username] mkdir /home/[username]/public_html/[folder_name] hoạt động tốt

Từ những gì tôi có thể thấy các quyền và quyền sở hữu là như nhau nếu tôi đăng nhập với cùng một người dùng và tạo thư mục bên dưới public_html.

Bạn cũng có thể gọi su -c "mkdir /home/[username]/public_html/[folder_name]" [username]


2
Khi bạn chạy sudo -u USERNAME mkdir DIRNAME, bạn đang thực thi mkdirlệnh với tư cách là người dùng USERNAME. Điều này không chính xác tương đương với đăng nhập USERNAME, bởi vì đăng nhập cũng bao hàm cài đặt các biến môi trường, v.v., nhưng đó là phần quan trọng, cụ thể là thực thi một quy trình như một người dùng cụ thể.
Gilles 'SO- ngừng trở nên xấu xa'

1
Ngoài ra người dùng có thể không có quyền.
mahemoff

1

Với các quyền đó, chỉ chủ sở hữu của thư mục hoặc siêu người dùng mới có thể tạo thư mục con.

Cách duy nhất mà bạn có thể tránh sử dụng các đặc quyền bổ sung để tạo thư mục là thay đổi quyền sở hữu cho chính mình (với sudo), tạo thư mục con và cuối cùng trả lại quyền sở hữu cho chủ sở hữu, nhưng không giống như một giải pháp tốt cho tôi.


vâng, khó khăn này. Đây là một câu hỏi ngớ ngẩn, nhưng lựa chọn của tôi là gì?
maGz

Điều gì về (như root) chạy lệnh như người dùng đó?: sudo -u devuser1 mkdir /home/devuser1/public_html/test. Điều đó không giống với việc tạo thư mục với sudonó phải không? ls -altiết lộ:drwxr-sr-x 2 devuser1 www-data 4096 Apr 28 23:49 test
maGz

Có thể tôi ngây thơ, nhưng tôi không thực sự thấy bất kỳ tội ác nào trong việc tạo một thư mục sudomiễn là bạn thay đổi quyền sở hữu sau đó.
RSFalcon7

Từ những gì lstiết lộ về nội dung của người dùng public_html, có vẻ như việc thay đổi quyền sở hữu là không bắt buộc, mặc dù có thể là quyền.
maGz

Tôi nghĩ rằng tôi cũng ngây thơ khi nghĩ về điều này: Tôi không tạo thư mục như vậy su, thay vào đó tôi đang sử dụng nó để xác thực chính mình là người dùng sẽ tạo thư mục ... điều đó có hợp lý không?
maGz

0

Tôi đã cố gắng để làm mkdir -p /srv/postgres/data/mydirnhưng vì

drwxr-xr-x 3 root root 4.0K Apr 7 08:26 srv có chủ root

không install -d -o <user> -g <group> -m <mode> <path> @ user2313838

cũng không sudo -u postgres mkdir -p /srv/postgres/data/mydirhoạt động @maGz

Vì vậy, tôi đã chia nó thành hai lệnh:

sudo mkdir -p /srv/postgres/data/mydir
sudo chown postgres:postgres /srv/postgres -R
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.