Hôm nay tôi quay lại với một mẹo khác mà cá nhân tôi sử dụng rất nhiều: có thể có một thư mục được chia sẻ giữa một số người dùng trên Linux. Tôi đặt họ vào một tình huống, với vợ tôi ở nhà, cả hai chúng tôi đều sử dụng cùng một máy tính Arch Linux nhưng mỗi người dùng riêng. Vì vậy, chúng tôi nhận thấy vấn đề với những thư mục mà chúng tôi chia sẻ như nhạc hoặc ảnh, vì mỗi thư mục có các tệp riêng, sao chép mọi thứ.
Đó là lúc chúng tôi nghĩ tạo một thư mục chia sẻ, nhưng có vấn đề về quyền. Nếu thư mục là của tôi, cô ấy không nhìn thấy nó, nếu tập tin do tôi tạo ra, cô ấy không xóa nó, v.v. Lúc đầu, bản vá là chúng tôi cấp cho 777 quyền đối với các tệp đó mỗi khi chúng tôi chỉnh sửa nội dung nào đó để người kia truy cập cho đến khi chúng tôi tìm ra giải pháp, Quyền nhóm!
Quyền nhóm là gì?
Đó là cái tốt nhất, gán thư mục dùng chung đó và tất cả nội dung của nó vào một nhóm đặc biệt với quyền đọc và ghi, mà tất cả các thành viên của nhóm sẽ có quyền truy cập vào thư mục đã nói. Sau đó, điều này cho phép chỉ cần thêm người dùng của chúng tôi vào nhóm đã nói, chúng tôi đã có thể tương tác trong thư mục đó.
Và làm cách nào để cấu hình nó?
Đây là phần hay nhất và tôi sẽ kể cho bạn nghe cách tôi đã làm với vợ mình. Điều đầu tiên là tạo thư mục đó, ví dụ tôi sẽ gọi là «chia sẻ".
sudo mkdir /home/compartido
Tôi tạo nó bên trong / nhà riêng và bên ngoài tài khoản của chúng tôi, để tránh các thư mục trên bận tâm với các quyền của riêng chúng. Bây giờ chúng ta phải tạo nhóm, mà chúng ta sẽ đặt «chia sẻ»
sudo groupadd compartidos
Và chúng tôi gán nhóm này cho thư mục mà chúng tôi đã tạo trước đó và chúng tôi cũng thay đổi quyền, để mọi thứ chúng tôi tạo bên trong, cho dù chúng là thư mục hay tệp, cũng thuộc nhóm này.
sudo chgrp -R compartidos /home/compartido
sudo chmod g+s dirname
Ngoài ra, chúng tôi phải thêm người dùng của mình vào đó. Sau đó, chúng ta phải lặp lại lệnh này cho mỗi lệnh:
sudo usermod -G compartido sebastian
sudo usermod -G compartido mimujer
Cho đến nay, chúng tôi có thư mục «/ home / shared»Thuộc về nhóm«chia sẻ«, Với những gì mà tất cả người dùng thành viên của cùng có thể truy cập và mọi thứ được tạo trong thư mục, sẽ thuộc về nhóm với những gì bất kỳ ai trong chúng ta có thể nhìn thấy chúng.
Bây giờ chúng ta chỉ cần một bước cuối cùng, có thể là tùy chọn, nhưng đó là thay đổi umask của người dùng, để đảm bảo rằng mỗi tệp mới mà chúng ta tạo đều có thể sửa đổi được bởi các thành viên khác trong nhóm. Điều này ảnh hưởng đến toàn bộ người dùng, không chỉ thư mục, vì vậy họ phải xem liệu nó có phù hợp với họ hay không. Trong trường hợp của tôi, vì chỉ có vợ tôi và tôi sử dụng hệ thống, nó không làm phiền chúng tôi và chúng tôi tự gán cho mình một umask là 002, có nghĩa là mọi tệp được tạo đều bắt đầu với 775 quyền.
Chỉnh sửa umask
Để chỉnh sửa umask, mỗi người dùng phải chỉnh sửa tệp .profile hoặc .bashrc nằm trong nhà của người dùng và sửa đổi giá trị của umask theo số mong muốn. Nếu tùy chọn không có ở đó, chúng ta phải thêm nó.
Vì vậy, trong bảng điều khiển, chúng tôi đặt:
sebastian@multivacs ~> vim .profile
Và chúng ta sẽ thấy một cái gì đó như thế này:
Vì vậy, chúng tôi đi đến dòng có nội dung umask, chúng tôi nhấn vào ký tự i để có thể chỉnh sửa và chúng tôi xóa dấu # để xóa nhận xét. Chúng tôi thay đổi số thành 002. Nếu dòng không xuất hiện, họ phải thêm nó.
Sau khi hoàn tất, chúng tôi nhấn phím Esc để thoát khỏi chế độ chỉnh sửa và sau đó chúng tôi viết :+q+w. Điều gì khiến chúng tôi lưu các thay đổi và thoát khỏi Vi.
Nó sẽ giống như hình ảnh này:
Vậy là xong! Nếu họ đóng phiên người dùng của mình và mở lại, các thay đổi sẽ được thực hiện, do đó, thư mục được chia sẻ sẽ hoạt động.
Mẹo hay.
Thể loại.
Vài năm trước, tôi thấy cần phải tự mình làm việc này, điều tôi không biết là umask ... Thay vào đó, tôi đặt một nhiệm vụ trong crontab 🙂
cảm ơn vì tiền hỗ trợ
Vâng, crontab cũng tốt. Bạn đã đặt gì để gán 775 quyền cho nội dung?
Mẹo tuyệt vời .. ..được lưu nếu cần thiết;) ..
Ok, bạn tạo thư mục / home / shared và gán nhóm "shared" cho nó nhưng
Thư mục đó thuộc về người dùng nào? Đó là, ai là chủ sở hữu? Tôi, người khác hoặc người dùng root có tài khoản bị vô hiệu hóa vì tôi sử dụng sudo?
Mặt khác, tôi thấy mình có vấn đề sau: Các tệp tôi tạo ra không thể bị xóa bởi người khác và các tệp do người khác tạo ra tôi không thể tự xóa.
Tôi đã làm gì sai?
Khi tạo thư mục với sudo, bạn nên để quyền root là chủ sở hữu. Bạn cũng có thể sửa đổi điều đó bằng lệnh chown để chỉ định người dùng khác.
Mặt khác, hãy kiểm tra xem các tệp bạn tạo có làm như vậy với 775 quyền hay không (cấp cho umask 002). Nếu họ không có những quyền đó, có thể có cấu hình sai.
Tương tự như vậy, cần làm rõ rằng umask ảnh hưởng đến mọi tệp mới được tạo trong thư mục, nhưng nếu chúng di chuyển hoặc sao chép nội dung từ nơi khác, các quyền ban đầu sẽ được duy trì chứ không phải những quyền mà chúng tôi đặt cho thư mục.
Chào! Bạn đúng.
Tôi đang tìm kiếm và vấn đề là do điều cuối cùng bạn nói: Khi di chuyển tệp từ vị trí khác sang thư mục chia sẻ, các quyền ban đầu vẫn được duy trì.
Có một giải pháp cho điều này?
Tôi có thể sử dụng ngọc trai.
Trong trường hợp đó, điều tốt nhất là đặt một crontab như KZKG ^ Gaara đã nói, trong đó bạn có thể đặt lệnh để gán nhóm và quyền đối với nội dung thư mục mỗi X lần.
Đó là nói một cái gì đó như thế này trong crontab:
sudo chgrp -R compartidos /home/compartido/*
chmod -R 775 /home/compartido/*
Để mọi thứ mới mẻ, hãy chuyển sang Nhóm được chia sẻ với quyền 775.
Bỏ qua dấu * ở cuối mỗi dòng, tôi đang nghĩ đến điều khác khi tôi đặt nó 😛
Cảm ơn bạn.
Bài viết rất hay, nhưng tôi thích có một phân vùng riêng, trong đó tôi có thể đặt mọi thứ tôi muốn chia sẻ. Tôi có một đĩa rộng 500 GB, trong đó tôi sử dụng 100 GB với Linux và một phân vùng 400 GB (ntfs), trong đó có tất cả nhạc, ảnh, v.v. Trên máy tính của tôi, chúng tôi có hai người dùng và mỗi người có thể truy cập phân vùng ntfs và đặt và loại bỏ những gì chúng ta muốn, khi chúng ta muốn. Nếu tôi không muốn chia sẻ bất cứ điều gì, tôi có một số thứ trong tên người dùng của mình. 🙂
Hiện tại, đó là một cách khác để làm điều đó nhưng vấn đề không nằm ở vị trí đặt tệp mà là cấu hình quyền và kiểm soát quyền truy cập của những người dùng khác nhau.
Bạn có thể có nó trên một phân vùng NTFS, đúng nhưng bạn cũng có phân mảnh, chậm hơn EXT4 và kém bảo mật hơn, mặc dù nếu bạn có nó theo cách đó thì nó cũng hợp lệ như nhau.
Được chứ! Mẹo hay, nhưng tôi vẫn sẽ thêm một nhiệm vụ để thay đổi quyền đối với 775 tệp mới ở mỗi lần đăng nhập và nó sẽ giải quyết vấn đề tệp được chuyển từ thư mục khác.
Ngoài ra, cảm ơn bạn rất nhiều vì đã chia sẻ!
Thú vị, cảm ơn!
Tôi đang nêu ra điều gì đó liên quan đến nhóm chia sẻ chính của một số bản phân phối gnu / linux. Một số bản phân phối tạo người dùng với người dùng nhóm chính và không sử dụng nhóm chính bằng tên của người dùng.
Sự khác biệt là sử dụng người dùng nhóm chính, theo mặc định, mọi thứ được chia sẻ với người dùng nhóm mà tất cả người dùng được tạo trong bản phân phối đó sẽ thuộc về, nếu thay vào đó họ được tạo cùng nhóm với tên của người dùng, theo mặc định thì không. không có gì sẽ được chia sẻ.
Ví dụ:
$ ls -l /home/user/*.txt
-rw-r - r– 1 carlos carlos 126 ngày 25 tháng 2012 năm XNUMX ghi chú.txt
$ ls -l /home/user/*.txt
-rw-r - r– 1 người dùng carlos 126 ngày 25 tháng 2012 năm XNUMX ghi chú.txt
Tôi không khuyên bạn nên sử dụng người dùng nhóm chính, tốt hơn nên tạo nhóm chính của riêng bạn khi tạo người dùng.
#groupadd carlos
# useradd -g carlos -G lp, wheel, uucp, audio, cdrom, cdrw, usb, lpadmin, plugdev -m -s / bin / bash carlos
Các carlos -g chỉ ra sử dụng các carlos của nhóm mẹ.
Bạn có thể thay đổi nhóm chính của người dùng bằng # usermod -g nhưng điều đó sẽ không thay đổi nhóm chính của tất cả các tệp và thư mục đã có trong / home / carlos, bạn sẽ phải thay đổi tất cả.
Ví dụ: thay đổi người dùng nhóm chính từ carlos người dùng thành carlos nhóm chính và sau đó thay đổi
tất cả các quyền đối với tệp và thư mục của carlos người dùng để chúng vẫn là của carlos carlos.
#groupadd carlos
người dùng # usermod -g carlos
# cd / home
# chown -R carlos: carlos carlos
Về chia sẻ, bạn có thể tạo người dùng được gọi là được chia sẻ với nhóm chính được chia sẻ của bạn và để không có vấn đề về quyền khi sao chép, trước tiên bạn thay đổi người dùng
với "$ su - shared" thì những gì bạn muốn sẽ được sao chép vào / home / shared, với quyền này và quyền của những gì được sao chép sẽ trở thành người dùng được chia sẻ.
Nếu đã có các tệp sao chép thuộc về những người dùng khác và nhóm chính, bạn phải thay đổi tất cả chúng.
# cd / home
# chown -R shared: đã chia sẻ đã chia sẻ
Chỉ còn điều gì đó lấp lửng, mà tôi không biết phải làm thế nào để sao chép đồ họa với tư cách là người dùng được chia sẻ, tức là mà không cần phải thực hiện $ su - shared
Thật là một điều ngớ ngẩn khi sao chép đồ họa, hehe, tôi sử dụng pcmanfm ở đây trong openbox, nhưng bạn có thể sử dụng trình quản lý tệp bạn có hoặc muốn, nó chỉ được thực thi với tư cách người dùng chia sẻ chứ không phải người dùng root.
$ su - đã chia sẻ
$pcmanfm
$ cá heo
$mc
vv vv
Tôi chỉ định trả lời điều đó. Nếu không, cái kia là crontab thay đổi chủ sở hữu của các tệp mỗi x lần với
chown -R compartido:compartido compartido
Đối với tôi, có vẻ như lệnh "usermod -G thenewgroup theuser" mà nó làm về cơ bản là thay đổi nhóm của người dùng thành "thenewgroup". Để thêm người dùng hiện có vào một nhóm mới, tôi nghĩ điều chính xác sẽ là "usermod -aG elnuevogrupo elusuario"
Một điều khác là tôi thấy ở đây có một số người khuyên bạn nên thực hiện "chmod -R 775" nhưng điều đó không chỉ ảnh hưởng đến các thư mục mà còn ảnh hưởng đến tất cả các tệp (làm cho chúng có thể thực thi), điều này dẫn đến rủi ro không cần thiết. Tốt hơn nên làm một cái gì đó như «find / home / shared -type d -print0 | xargs -0 chmod 755 "và nếu cần thiết với các tệp, bạn có thể làm điều gì đó tương tự nhưng sử dụng" -type f "và cấp quyền 664.
Cuối cùng, một cách để làm cho nhiều tài khoản có quyền truy cập vào một tệp hoặc thư mục bất kể chủ sở hữu hoặc nhóm là ai bằng cách sử dụng lệnh "setfacl" có trong gói acl (nếu tôi nhớ không nhầm). Việc sử dụng nó được giải thích rõ ràng trên trang hướng dẫn sử dụng.
Tôi có một vấn đề sau đây. Tôi đã tạo 4 người dùng (web1, web2, web3, web4) và tôi muốn tạo một thư mục nhóm truy cập cho người dùng của nhóm web. Khi tôi tạo tệp .htaccess, tôi biết rằng tôi phải đặt yêu cầu người dùng hợp lệ, nhưng, nếu tôi đặt yêu cầu người dùng hợp lệ web1 web2 web3 web4 để họ có thể truy cập thư mục bằng mật khẩu của họ, khi tôi cố gắng truy cập thư mục nó hỏi tôi người dùng và mật khẩu của từng người. Làm cách nào để tôi chỉ được hỏi tên người dùng và mật khẩu của người muốn nhập? bởi vì một người không được phép biết mật khẩu của người kia.
Hey.
Thiết bị đầu cuối thứ 4 phải có số nhiều "chia sẻ":
sudo usermod -G shared sebastian
sudo usermod -G đã chia sẻ người phụ nữ của tôi
Chúc mừng.
Gustavo
Chúc mừng:
Chúng tôi đang di chuyển từ Windows Server sang CentOs 6 và chúng tôi vẫn đang trong quá trình điều chỉnh. Truy vấn của tôi: Có giao diện đồ họa trong CentO để chia sẻ thư mục và cấp quyền truy cập cho người dùng để sửa đổi, chỉnh sửa và / hoặc xóa tệp không ?, hay tôi nên thực hiện tất cả quy trình trên.
Cảm ơn đã giúp đỡ.
Tôi cũng đang cài đặt centos 6 và tôi muốn sử dụng nó với samba cho phép tôi chia sẻ tệp từ linux và windows, tôi biết một chút, tôi không sử dụng linux nhiều, nhưng trong công việc tôi đã được hỏi, làm thế nào tôi có thể làm để chia sẻ thư mục nhưng ở chế độ đồ họa ??.
Chào. Xin hãy giúp tôi! ... Hóa ra là bằng cách làm điều này với người dùng của tôi trong tâm trí linux, bây giờ tôi đã mất đặc quyền. Tôi không thể chạy bất cứ thứ gì như sudo. Tôi nhận được thông báo sau "Xin lỗi, người dùng" tên người dùng "không được phép thực thi" lệnh_to_run "với tư cách là người chủ trong" tên người dùng ""
Tôi nghĩ rằng khi tôi thay đổi người dùng của mình thành nhóm được chia sẻ, tôi đã lấy đi các đặc quyền và bây giờ tôi làm cách nào để khôi phục chúng?
Này bạn, có cách nào làm tương tự nhưng chia sẻ tệp với người khác trên mạng LAN Internet không
Đối với điều này, bạn phải sử dụng SAMBA làm Máy chủ Tệp. Chúc mừng
Chào. Khi tôi nhận được lệnh sudo chmod g + s dirname, nó cho tôi biết rằng tệp hoặc thư mục không tồn tại. Bạn có biết vấn đề là gì không?
Làm cách nào để tạo một nhóm trong một nhóm khác?
Dòng:
sudo usermod -G shared sebastian
nên là:
sudo usermod -a -G shared sebastian
cách đầu tiên xóa các nhóm còn lại của người dùng.
và nếu bạn đổ mồ hôi, bạn sẽ mất đặc quyền của mình