// Cập nhật ngày 8 tháng 2 - Tóm tắt các vấn đề nổi bật:
- Làm thế nào để umask thư mục khác nhau từ các tập tin?
- Làm thế nào để umask trên Nautilus sao chép / dán?
- Làm cách nào để đặt umask cho SSHFS?
TÌNH HÌNH CỦA CHÚNG TÔI
Một số người từ công ty chúng tôi đăng nhập vào một máy chủ và tải lên các tập tin. Tất cả đều cần có khả năng tải lên và ghi đè lên cùng một tệp. Họ có tên người dùng khác nhau, nhưng tất cả đều thuộc cùng một nhóm. Tuy nhiên, đây là một máy chủ internet, vì vậy người dùng "khác" nên có (nói chung) chỉ truy cập chỉ đọc. Vì vậy, những gì tôi muốn có là các quyền tiêu chuẩn:
tập tin: 664
thư mục: 771
Mục tiêu của tôi là tất cả người dùng không cần phải lo lắng về quyền. Máy chủ phải được cấu hình theo cách mà các quyền này áp dụng cho tất cả các tệp và thư mục, mới được tạo, sao chép hoặc ghi đè. Chỉ khi chúng tôi cần một số quyền đặc biệt, chúng tôi mới thay đổi thủ công.
Chúng tôi tải các tệp lên máy chủ bằng SFTP-ing trong Nautilus, bằng cách gắn máy chủ bằng sshfs và truy cập vào Nautilus như thể đó là một thư mục cục bộ và SCP-ing trong dòng lệnh. Điều đó về cơ bản bao gồm tình hình của chúng tôi và những gì chúng tôi nhằm làm.
Bây giờ, tôi đã đọc nhiều điều về chức năng umask đẹp. Từ những gì tôi hiểu umask (cùng với PAM) sẽ cho phép tôi thực hiện chính xác những gì tôi muốn: đặt quyền tiêu chuẩn cho các tệp và thư mục mới. Tuy nhiên, sau nhiều giờ đọc và dùng thử, tôi vẫn không làm cho nó hoạt động. Tôi nhận được nhiều kết quả bất ngờ. Tôi thực sự muốn có được một nắm vững của umask và có nhiều câu hỏi chưa được trả lời. Tôi sẽ đăng những câu hỏi dưới đây, cùng với những phát hiện của tôi và một lời giải thích về những thử nghiệm của tôi dẫn đến những câu hỏi này. Cho rằng nhiều điều có vẻ sai, tôi nghĩ rằng tôi đang làm một số điều sai. Vì vậy, có rất nhiều câu hỏi.
LƯU Ý: Tôi đang sử dụng Ubuntu 9.10 và do đó không thể thay đổi sshd_config để đặt ô cho máy chủ SFTP. Đã cài đặt SSH OpenSSH_5.1p1 Debian-6ubfox2 <yêu cầu OpenSSH 5.4p1. Vì vậy, ở đây đi các câu hỏi.
1. TÔI CÓ CẦN PHỤC HỒI CHO THAY ĐỔI PAM ĐỂ HIỆU QUẢ KHÔNG?
Hãy bắt đầu với điều này. Có rất nhiều tệp liên quan và tôi không thể tìm ra cái gì và cái gì không ảnh hưởng đến mọi thứ, bởi vì tôi không biết liệu tôi có phải khởi động lại toàn bộ hệ thống để thay đổi PAM có hiệu lực hay không. Tôi đã làm như vậy sau khi không thấy kết quả mong đợi, nhưng điều này có thực sự cần thiết? Hoặc tôi có thể đăng xuất khỏi máy chủ và đăng nhập lại không và các chính sách PAM mới có hiệu quả không? Hoặc có một số chương trình 'PAM' để tải lại?
2. CÓ MỘT NỀN TẢNG ĐỂ THAY ĐỔI R ANG ẢNH HƯỞNG ĐẾN TẤT CẢ CÁC NGƯỜI SỬ DỤNG CHO TẤT CẢ CÁC PHẦN?
Vì vậy, cuối cùng tôi đã thay đổi NHIỀU tệp, khi tôi đọc NHIỀU thứ khác nhau. Tôi đã kết thúc việc thiết lập ô trong các tệp sau:
~/.profile -> umask=0002
~/.bashrc -> umask=0002
/etc/profile -> umask=0002
/etc/pam.d/common-session -> umask=0002
/etc/pam.d/sshd -> umask=0002
/etc/pam.d/login -> umask=0002
Tôi muốn thay đổi này áp dụng cho tất cả người dùng, vì vậy một số loại thay đổi toàn hệ thống sẽ là tốt nhất. Nó có thể đạt được?
3. SAU TẤT CẢ, ĐIỀU NÀY UMASK, CÓ LÀM VIỆC KHÔNG?
Vì vậy, sau khi thay đổi umask thành 0002 ở mọi nơi có thể, tôi chạy thử nghiệm.
------------ SCP -----------
KIỂM TRA 1:
scp testfile (which has 777 permissions for testing purposes) server:/home/
testfile 100% 4 0.0KB/s 00:00
Hãy kiểm tra quyền:
user@server:/home$ ls -l
total 4
-rwx--x--x 1 user uploaders 4 2011-02-05 17:59 testfile (711)
CẬP NHẬT: đã sửa bằng cách CHỈ cài đặt ô trong pam.d / phiên chung (xem bình luận)
--------- SSH ------------
KIỂM TRA 2:
ssh server
user@server:/home$ touch anotherfile
user@server:/home$ ls -l
total 4
-rw-rw-r-- 1 user uploaders 0 2011-02-05 18:03 anotherfile (664)
-------- SFTP -----------
Nautilus: sftp: // máy chủ / nhà /
Sao chép và dán tệp mới từ máy khách sang máy chủ (777 trên máy khách)
KIỂM TRA 3:
user@server:/home$ ls -l
total 4
-rwxrwxrwx 1 user uploaders 3 2011-02-05 18:05 newfile (777)
Tạo một tệp mới thông qua Nautilus. Kiểm tra quyền truy cập tệp trong thiết bị đầu cuối:
KIỂM TRA 4:
user@server:/home$ ls -l
total 4
-rw------- 1 user uploaders 0 2011-02-05 18:06 newfile (600)
Ý tôi là ... CÁI GÌ vừa xảy ra ở đây?! Chúng ta sẽ nhận được 644 mỗi lần. Thay vào đó, tôi nhận được 711, 777, 600, và sau đó là 644. Và 644 chỉ đạt được khi tạo một tệp mới, trống thông qua SSH, đây là tình huống ít xảy ra nhất.
Vì vậy, tôi đang hỏi, liệu umask / pam có hoạt động không?
CẬP NHẬT: kiểm tra cố định 4 bằng cách CHỈ cài đặt ô trong pam.d / phiên chung (xem bình luận)
4. VÌ SAO NÓ CÓ Ý NGH UMA ĐẾN UMASK SSHFS?
Đôi khi chúng tôi gắn kết một máy chủ cục bộ, sử dụng sshfs. Rất hữu ích. Nhưng một lần nữa, chúng tôi có vấn đề quyền.
Đây là cách chúng tôi gắn kết:
sshfs -o idmap=user -o umask=0113 user@server:/home/ /mnt
LƯU Ý: chúng tôi sử dụng umask = 113 vì rõ ràng, sshfs bắt đầu từ 777 thay vì 666, vì vậy với 113 chúng tôi nhận được 664 là quyền cho phép tệp mong muốn.
Nhưng điều bây giờ xảy ra là chúng tôi thấy tất cả các tệp và thư mục như thể chúng là 664. Chúng tôi duyệt trong Nautilus tới / mnt và:
- Nhấp chuột phải -> Tệp mới (tệp mới) --- KIỂM TRA 5
- Nhấp chuột phải -> Thư mục mới (newfolder) --- TEST 6
- Sao chép và dán tệp 777 từ máy khách cục bộ của chúng tôi --- TEST 7
Vì vậy, hãy kiểm tra dòng lệnh:
user@client:/mnt$ ls -l
total 8
-rw-rw-r-- 1 user 1007 3 Feb 5 18:05 copyfile (664)
-rw-rw-r-- 1 user 1007 0 Feb 5 18:15 newfile (664)
drw-rw-r-- 1 user 1007 4096 Feb 5 18:15 newfolder (664)
Nhưng này, hãy kiểm tra cùng thư mục này ở phía máy chủ:
user@server:/home$ ls -l
total 8
-rwxrwxrwx 1 user uploaders 3 2011-02-05 18:05 copyfile (777)
-rw------- 1 user uploaders 0 2011-02-05 18:15 newfile (600)
drwx--x--x 2 user uploaders 4096 2011-02-05 18:15 newfolder (711)
Gì?! Các quyền của tệp REAL rất khác so với những gì chúng ta thấy trong Nautilus. Vì vậy, cái ô này trên sshfs chỉ tạo một 'bộ lọc' hiển thị quyền truy cập tệp không thực? Và tôi đã cố mở một tệp từ một người dùng khác nhưng cùng nhóm có 600 quyền thực sự nhưng 644 quyền 'giả' và tôi vẫn không thể đọc được, vậy bộ lọc này có gì hay ??
5. UMASK LÀ TẤT CẢ VỀ PHIM. NHƯNG GÌ VỀ GIÁM ĐỐC?
Từ các thử nghiệm của tôi, tôi có thể thấy rằng các ô đang được áp dụng bằng cách nào đó cũng ảnh hưởng đến các quyền của thư mục. Tuy nhiên, tôi muốn các tệp của mình là 664 (002) và các thư mục của tôi là 771 (006). Vì vậy, nó có thể có một umask khác nhau cho các thư mục?
6. PERHAPS UMASK / PAM LÀ THỰC SỰ COOL, NHƯNG UBUNTU CÓ CHỈ LÀ BUGGY?
Một mặt, tôi đã đọc các chủ đề của những người đã thành công với PAM / UMASK và Ubuntu. Mặt khác, tôi đã tìm thấy nhiều lỗi cũ hơn và mới hơn liên quan đến umask / PAM / fuse trên Ubuntu:
- https://bugs.launchpad.net/ubfox/+source/gdm/+orms/241198
- https://bugs.launchpad.net/ubfox/+source/fuse/+orms/239792
- https://bugs.launchpad.net/ubfox/+source/pam/+orms/253096
- https://bugs.launchpad.net/ubfox/+source/sudo/+orms/549172
- http://bugs.debian.org/cgi-bin/orpreport.cgi?orms=314796
Vì vậy, tôi không biết những gì để tin nữa. Tôi có nên từ bỏ? ACL sẽ giải quyết tất cả các vấn đề của tôi? Hay tôi lại gặp vấn đề khi sử dụng Ubuntu?
Một lời cảnh báo với các bản sao lưu sử dụng tar. Các bản phân phối Red Hat / Centos hỗ trợ acls trong chương trình tar nhưng Ubuntu không hỗ trợ acls khi sao lưu. Điều này có nghĩa là tất cả các acls sẽ bị mất khi bạn tạo bản sao lưu.
Tôi rất sẵn lòng nâng cấp lên Ubuntu 10.04 nếu điều đó cũng giải quyết được vấn đề của tôi, nhưng trước tiên tôi muốn hiểu những gì đang xảy ra.