Chương trình CLI tiêu chuẩn để quản lý người dùng và nhóm là gì?


8

Về cơ bản, tôi đang hỏi về quản lý người dùng từ dòng lệnh (ví dụ: trên một hệ thống không có công cụ đồ họa khả dụng). Trong quá khứ tôi đã sử dụng các chương trình khác nhau để thêm hoặc người dùng xóa và các nhóm hoặc thay đổi các thuộc tính của họ: adduser, useradd, usermod, gpasswd, và có lẽ những người khác tôi đã quên. Tôi cũng đã nghe một vài lần rằng một số chương trình này ở mức độ thấp và nên tránh sử dụng chung, nhưng tôi không bao giờ có thể nhớ được. Vì vậy, tôi muốn nhận được câu trả lời dứt khoát cho chương trình nào là chương trình được đề xuất cho ít nhất các nhiệm vụ sau:

  • Tạo người dùng mới
  • Thêm người dùng vào một nhóm
  • Xóa người dùng khỏi một nhóm
  • Thay đổi nhóm chính của người dùng
  • Thay đổi shell đăng nhập của người dùng hoặc thư mục chính
  • Xóa người dùng

Tôi đang tìm kiếm các công cụ tiêu chuẩn mà tôi có thể mong đợi có sẵn trên hầu hết mọi hệ thống Linux (của bất kỳ bản phân phối nào).


1
cũng groupmod. Tôi sẽ không đưa ra câu trả lời này .... nhưng cách tiêu chuẩn nhất có lẽ là sử dụng trình soạn thảo văn bản của bạn ... hãy nhớ rằng các tệp bị ảnh hưởng chỉ là văn bản được phân tách.
xenoterracide

Thật thú vị, trước khi đặt câu hỏi này, tôi chưa bao giờ thấy nhiều như đề cập đến việc trực tiếp chỉnh sửa các tập tin. (Bằng cách nào đó tôi đã có ấn tượng /etc/passwdchỉ là một phần của một hệ thống phức tạp)
David Z

Câu trả lời:


9

Đáng buồn thay, không có hoạt động nào trong số đó đã được chuẩn hóa.

Một số hệ điều hành cung cấp chức năng này như một phần của HĐH, như Linux, nhưng ngay cả khi hệ thống Linux của bạn bao gồm chúng, theo thời gian và trên toàn bộ Linux, các công cụ và tên của chúng đã thay đổi để bạn không thể thực sự phụ thuộc vào một bộ công cụ tiêu chuẩn để làm những nhiệm vụ đó.

Bạn cần phải có một bộ công cụ cho mỗi hệ điều hành.


Tôi chưa bao giờ thay đổi tên ... nhưng tôi đã thay đổi công tắc. Tôi nhớ lại một lần khi phát hiện ra rằng linux không có gpasswd -a.
xenoterracide

1
Nếu bộ nhớ phục vụ-- RedHat đã từng sử dụng 'adduser' thay vì 'useradd' và nó hoạt động khác đi (tôi nghĩ useradd là Debianish hơn). Sau đó, họ đã biến 'adduser' thành một liên kết tượng trưng cho 'useradd'. Xem một số tài liệu tham khảo cũ tại redhat.com/docs/manuals/linux/RHL-5.2-Manual/install-guide/...
Stefan Lasiewski

7

Trên các hệ thống Debian (và dẫn xuất), adduserdeluserlà các trình bao bọc cấp cao hơn xung quanh useraddvà chức năng liên quan. Việc tạo người dùng bao gồm, cộng và trừ thành viên nhóm và xóa người dùng. Các lệnh tương ứng từ việc tạo / xóa các nhóm là, đủ rõ ràng addgroupdelgroup. usermodxuất hiện để bao gồm các trường hợp sử dụng còn lại mà bạn đặt tên.


6

Bạn đề cập đến Linux trong phần cuối của câu hỏi của bạn, nhưng vì tiêu đề là chung chung nên tôi sẽ trả lời cho FreeBSD.

FreeBSD có các lệnh tương tự như Linux nhưng chúng là các lệnh được truyền cho pwtiện ích:

pw useradd [user|uid] ...
pw usermod [user|uid] ...

và như thế. Tuy nhiên, người ta có thể phân tích lệnh thành hai phần: usermod; một danh từ và một động từ. Hơn nữa, người ta cũng có thể sử dụng groupdel:

pw groupdel [group|gid] ...

để, ví dụ, xóa một nhóm. Vì vậy, đây là những gì tôi nghĩ là thực sự tuyệt vời: thứ tự không quan trọng, cũng không phải là khoảng cách! Điều này có nghĩa là, bạn có thể nhớ những gì cần gọi bằng cách suy nghĩ về những gì bạn muốn làm (bằng tiếng Anh nào):

pw del user [user|uid] ...
pw mod group [group|gid] ...
pw show user [user|uid] ...
pw next user [user|uid] ...

và hơn thế nữa! Các pwtiện ích cũng cho phép bạn khóa và chiếm unlock:

pw lock [user|uid] ...
pw unlock [user|uid] ...

Các tùy chọn và mọi tham số mà bạn vượt qua đều được chuẩn hóa (mặc dù không luôn áp dụng cho các lệnh gọi) để việc ghi nhớ được giảm thiểu. Tất cả trong một cách tốt đẹp để làm việc.

Lưu ý: các hình elip trong các ví dụ trên biểu thị các tùy chọn và tham số được truyền cho pwkhông phải người dùng hoặc nhóm bổ sung.


Đó là một câu hỏi Linux nhưng thông tin vẫn được đánh giá cao. Sẽ thật tuyệt nếu Linux có thứ như thế này.
David Z

Danh từ và động từ, ý bạn là.
Warren Young

Ôi! Đã sửa nó.
gvkv

2

Chỉ để hoàn thiện, ở cấp độ thấp của phổ tôi sẽ đề cập đến vipw (8) và vigr (8), ngay phía trên "vi / etc / passwd" và "cat> / etc / passwd" nhưng ngay bên dưới "useradd ". Ồ, và chúng tồn tại trong hầu hết các biến thể Unix.


2

Tất cả các công cụ này cuối cùng được xây dựng để chỉnh sửa các tệp văn bản cho bạn. Nếu bạn muốn biết cách quản lý người dùng và nhóm trên các hệ thống, bạn nên làm quen với các tệp văn bản cơ bản này. May mắn cho bạn, chỉ có hai trong số họ, /etc/passwd/etc/group. Ngoài ra còn có bổ sung /etc/shadow/etc/gshadowcác tập tin cho bóng tối passwd và nhóm tương ứng.


4
... và / etc / bóng, vì hầu hết các hệ thống sẽ bị vẹo nếu tôi không phù hợp với / etc / passwd
codehead

1

Trong nhiều tình huống, biết cách chỉnh sửa "/ etc / passwd" vẫn hữu ích.


1
Biết cách đọc / etc / passwd là hữu ích, nhưng sửa đổi nó trực tiếp là một thực hành xấu. Trên một số * ixes tôi đã sử dụng (SysV hiện đại, OS X ...) những tệp này không phải là nơi chính mà dữ liệu người dùng và nhóm được lưu trữ. Chúng là bản sao bóng để tương thích hoặc chúng là nguồn chính nhưng có một cơ sở dữ liệu hoặc chỉ mục cần được cập nhật bất cứ khi nào chúng thay đổi. Trên các hệ thống đó, nếu bạn không cập nhật các tệp thông qua các công cụ chính thức, các thay đổi sẽ không có hiệu lực ngay lập tức nếu có.
Warren Young


1

Nếu bạn đang sử dụng một phụ trợ khác ngoài phụ trợ máy cục bộ mặc định - OpenLDAP là phổ biến nhất - thì cpu (tiện ích thay đổi mật khẩu) có thể là lệnh bạn đang tìm kiếm. Nó có thể chạy trên các máy không phải là chủ LDAP nếu được cấu hình đúng và cú pháp của nó chủ yếu giống như useraddvv với tiền tố là cpu. Vì vậy, để thêm bản thân tôi có thể làm

$ sudo cpu useradd hamish

Xem trang người đàn ông cpu để biết thêm chi tiết.


Thật thú vị, nhưng một câu trả lời chỉ áp dụng trên một máy lấy thông tin người dùng từ LDAP là rất hạn chế đối với tôi.
David Z

0

Nếu câu hỏi của bạn bị giới hạn

bất kỳ hệ thống Linux nào (của bất kỳ phân phối nào)

nhưng tất cả các hệ thống có quyền truy cập mạng vào một máy chủ. Bạn có thể sử dụng một cái gì đó như NIS hoặc YP. Vì vậy, câu trả lời này được giới hạn cho quản trị viên trong một tổ chức duy nhất.

Bạn vẫn gặp phải vấn đề khi hầu hết mọi bản phân phối có các cách khác nhau để định cấu hình YP, nhưng cấu hình chỉ xảy ra một lần. Ngoài ra, loại mạng này không tầm thường.

Trong một trang web / mạng duy nhất, bạn sẽ đạt được rất nhiều điều này. Kết hợp với automount, yêu thích của tôi là có thể SSH đến bất kỳ máy * nix nào và có sẵn tất cả các tệp và công cụ nhà của tôi.

Đến thời điểm đó, bản phân phối bạn chọn cho chủ chính là hệ thống bạn sử dụng để quản lý người dùng. Sau đó, bạn sẽ có một bộ công cụ / tài liệu duy nhất để quản lý người dùng và nhóm.

Thậm chí có thể sử dụng một cái gì đó như LDAP và các công cụ samba trên bản gốc. Sử dụng samba cũng cho phép tôi có sẵn các tệp tại nhà trên máy Windows.


Cảm ơn, nhưng tôi đang tìm kiếm một câu trả lời cũng áp dụng cho các hệ thống không nối mạng.
David Z

0

Điều gần gũi nhất với một tiêu chuẩn bạn sẽ nhận được là vi /etc/passwd, vi /etc/shadow, và vi /etc/groups. (Những kẻ dị giáo có thể thay thế emacs.) Mọi thứ kể từ đó mà tôi tìm thấy sẽ chỉ hoạt động trên một số hệ thống.

Nghiêm túc, tìm ra những công cụ mà hệ điều hành của bạn có, và sử dụng chúng. Chỉ không mong đợi chúng hoạt động như nhau trên tất cả các hệ thống. Sẽ thật tuyệt nếu chúng được chuẩn hóa, nhưng chúng không như vậy.


Sử dụng trình chỉnh sửa văn bản để chỉnh sửa các tệp cấu hình mà các công cụ có thể và nên chỉnh sửa cho bạn không phải là một tiêu chuẩn. Bạn không bao giờ nên sử dụng trình soạn thảo văn bản để thay đổi tệp cấu hình, khi hệ điều hành hoặc ứng dụng cung cấp tiện ích để thực hiện việc này cho bạn. Điều này đặc biệt đúng đối với /etc/passwd, /etc/shadow, /etc/group, và /etc/gshadow. Đây là những gì các công cụ dành cho. Con người dễ bị lỗi, trong khi các công cụ đã được kiểm tra và (hy vọng) không có lỗi.
Aaron Toponce

Không bao giờ gọi một biên tập viên trên /etc/passwdvà bạn bè trực tiếp. Sử dụng vipwvigr, trong đó: khóa tệp chống lại phiên bản đồng thời; chạy trình soạn thảo yêu thích của bạn ( $VISUAL); không thay đổi tập tin nếu bạn mắc lỗi cú pháp; trên một số hệ thống (ví dụ FreeBSD) cũng tạo lại các tệp khác phải được giữ đồng bộ.
Gilles 'SO- ngừng trở nên xấu xa'
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.