Đây là mã script tôi đang sử dụng:
getent group $MYGROUP
if [ $? -ne 0 ] ; then
sudo su -c "groupadd $MYGROUP"
fi
sudo su -c "useradd mynewuser -p mypassword -m -g $PRIMARYGRP -G $MYGROUP"
Cách tiếp cận này hoạt động tốt trên openSuse. Nhưng có một số vấn đề với tài khoản người dùng mà nó tạo ra trên Ubuntu nên tôi đang tìm kiếm sự giúp đỡ ở đây.
- dấu nhắc thiết bị đầu cuối không được đặt (
echo $PS1không trả về gì) - các phím mũi tên và phím tab không hoạt động chính xác trong thiết bị đầu cuối
- mật khẩu dường như không hoạt động (mặc dù tôi vẫn chưa rõ chính xác vấn đề này là gì)
- quyền / etc / sudoers được đặt cho người dùng mới này không được tôn trọng
Thay vào đó, nếu tôi tự tạo người dùng bằng adduser(thay vì useradd), tôi không gặp phải những vấn đề này trên Ubuntu. Nhưng tôi không thể sử dụng addusertrên openSuse (afaik). Do đó, tôi cần một tập lệnh hoặc phương pháp không độc quyền của Debian để thêm tài khoản người dùng thông qua tập lệnh bash của tôi hoạt động trên Ubuntu (và không ngừng hoạt động trên các bản phát hành khác).
Cuối cùng, tôi muốn hiểu sự khác biệt giữa adduservà useradd. Ví dụ, tôi muốn biết thư mục bộ xương nào được sử dụng bởi adduservì đó có thể là lý do useraddkhông hoạt động như mong đợi (vì tôi chỉ chấp nhận mặc định).
Cảm ơn
sudo su -c "cmd arg1 arg2"là tương đương với sudo cmd arg1 arg2.
sudo su -c "cmd arg1 arg2"để nó hoạt động ở mọi nơi tôi cần.
adduserlà một tập lệnh perl dài hơn 1000 dòng, vì vậy để biết sự khác biệt, bạn có thể xem tập lệnh.
addusernhưng tôi không biết perl. Vì vậy, đó không phải là một cách tiếp cận tốt cho tôi.
man useradd): useradd là một tiện ích cấp thấp để thêm người dùng. Trên Debian, quản trị viên thường nên sử dụng adduser (8) thay thế.