Bạn có thể dùng: usermod -a -G grouptoadd username
Vì nó ít rõ ràng hơn tôi nghĩ tại sao -a -G vẫn ổn trong khi -aG không phải là tôi sẽ cố gắng giải thích nó:
Các tùy chọn -G có một giá trị hoặc danh sách các giá trị. Trong trường hợp có một giá trị, giá trị có thể được đưa ra như sau: -GVALUE vì không có yêu cầu phải có khoảng trắng giữa tùy chọn và giá trị. Đây chỉ là thực tế phổ biến.
Nếu bạn có một nhóm được gọi là một hệ thống của bạn, thì việc gọi -Ga trở nên mơ hồ. Bạn có muốn người dùng chỉ có một nhóm a? Bạn đang gọi -a và -G? Vậy thì "a" có phải là giá trị cho -G không? Phần còn lại của giá trị (đến -G) ở đâu? Một thực tế phổ biến là bất kỳ tùy chọn một chữ cái nào cũng có thể trước bất kỳ tùy chọn một chữ cái nào khác. nên tat -xy == -yz. Nhưng điều này không rõ ràng khi một trong các tùy chọn có thể lấy một giá trị duy nhất như VALUE hoặc nhiều giá trị như VAL1, Val2, val4, v.v.
Vì vậy, để tạo lệnh FAILSAFE và hoạt động đúng cho tất cả các đầu vào, bạn phải tách -a khỏi -G
Từ man usermod
:
Tên
usermod - sửa đổi tài khoản người dùng
Tóm tắc
usermod [tùy chọn] ĐĂNG NHẬP
Sự miêu tả
Lệnh usermod sửa đổi các tệp tài khoản hệ thống để phản ánh các thay đổi được chỉ định trên dòng lệnh.
Tùy chọn
Các tùy chọn áp dụng cho lệnh usermod là:
-a, - xuất hiện
Thêm người dùng vào (các) nhóm bổ sung . Chỉ sử dụng với tùy chọn -G .
...
-G, - nhóm NHÓM1 [, NHÓM2, ... [, NHÓM]]]
Một danh sách các nhóm bổ sung mà người dùng cũng là thành viên của. Mỗi nhóm được phân tách từ nhóm tiếp theo bằng dấu phẩy, không có khoảng trắng can thiệp. Các nhóm phải tuân theo các hạn chế giống như nhóm được cung cấp với tùy chọn -g .
Nếu người dùng hiện là thành viên của một nhóm không được liệt kê, người dùng sẽ bị xóa khỏi nhóm. Hành vi này có thể được thay đổi thông qua tùy chọn -a , bổ sung người dùng vào danh sách nhóm bổ sung hiện tại.
...