Có thể thêm người dùng vào tệp sudoers thông qua tập lệnh trình bao không? Tôi đã nhìn xung quanh, vẫn không thể tìm thấy bất cứ điều gì.Thêm người dùng vào sudoers thông qua tập lệnh shell
Trả lời
Bạn có thể chỉ đơn giản là echo
(với quyền cao, tất nhiên) trực tiếp đến /etc/sudoers
file:
sudo -i
echo 'nickw444 ALL=(ALL:ALL) ALL' >> /etc/sudoers
# ^^
# tab
(lưu ý các ký tự tab giữa tên người dùng và ALL
đầu tiên)
Hoặc, đối với một tập lệnh:
#!/bin/bash
# Run me with superuser privileges
echo 'nickw444 ALL=(ALL:ALL) ALL' >> /etc/sudoers
Sau đó lưu vào somefile.sh
, chmod a+rx
và chạy sudo ./somefile.sh
từ cửa sổ đầu cuối.
Để thêm nhiều người dùng, hãy thay đổi tập lệnh thành điều này;
#!/bin/bash
while [[ -n $1 ]]; do
echo "$1 ALL=(ALL:ALL) ALL" >> /etc/sudoers;
shift # shift all parameters;
done
Sau đó, chạy các kịch bản như thế này (giả sử bạn đã lưu nó như addsudousers.sh
):
sudo ./addsudousers.sh bob joe jeff
có nghĩa là, không gian tách ra.
Để đọc tên từ một tập tin:
[email protected] ~ $ sudo ./addsudousers.sh `cat listofusers.txt`
listofusers.txt
cũng nên không gian tách ra.
Edit: Jappie Kirk rightly points out mà bạn có thể không trực tiếp gọi sudo echo ... >> /etc/sudoers
vì chuyển hướng >>
được xử lý bởi vỏ, trong đó có bởi thời điểm đó giảm các đặc quyền superuser. Tuy nhiên, nếu bạn chạy tập lệnh có chứa echo ... >> /etc/sudoers
và bản thân tập lệnh có đặc quyền superuser, mọi thứ sẽ hoạt động tốt.
Làm việc hoàn hảo. Cảm ơn rất nhiều – nickw444
'sudo echo' không hoạt động, xem: https://blogs.oracle.com/joshis/entry/sudo_echo_does_not_work Cũng theo mặc định, tệp sudoers là chỉ đọc –
@Jappie: OP cho biết" đã hoạt động hoàn hảo "vì vậy tôi 'không chắc chắn vấn đề là gì đối với bạn. Có lẽ hãy xem ["Làm cách nào để chỉnh sửa/etc/sudoers từ tập lệnh?"] (Http://stackoverflow.com/q/323957/732016)? – wchargin
Ngoài ra còn có các nhóm sudo
, và bạn có thể thêm người dùng đến nó (cho các cấu hình chung của /etc/sudoers
)
Không, một tiếng vang thẳng sẽ không làm việc, bạn phải chạy nó trong một subshell. Hãy thử thay vào đó:
sudo sh -c "echo \"group ALL=(user) NOPASSWD: ALL\" >> /etc/sudoers"
đó là nó, sự cho phép 0440 của tập tin sudoers ngăn chặn để làm điều đó – pylover
Đăng nhập với tư cách gốc của máy. Người dùng root là người duy nhất có đặc quyền để thêm người dùng mới.
Khi bạn đăng nhập, bây giờ bạn có thể thử các lệnh sau đây:
Tạo một người dùng mới.
adduser [username]
Thêm mật khẩu để sử dụng
passwd [username]
quyền root Grant để sử dụng Chỉnh sửa các tập tin visudo bằng cách đơn giản gõ
enter code here
Tìm dòng mã sau đây: gốc ALL = (ALL) ALL
Sau đó thêm mã này dưới đây:
[username] ALL=(ALL) ALL
Các bài gốc sẽ tìm vào liên kết này Centos 6 – Creating sudoers user
câu trả lời khác như như đẻ trứng một vỏ bọc con sẽ hoạt động, nhưng có thể không hoạt động nếu bạn muốn sử dụng các lọ môi trường. Một thay thế tôi thấy đã chơi thực sự độc đáo cho tôi:
echo "%<user> ALL=(ALL) ALL" | sudo tee -a /etc/sudoers > /dev/null
này đang được nói, nhận thức muộn màng là 20/20 ... Nếu sửa đổi sudoers qua một kịch bản và không qua visudo tôi nghiêm túc sẽ khuyên bạn nên tạo một bản sao lưu với các tập tin ngay quyền và nội dung đầu tiên kể từ khi bạn có thể mất quyền truy cập đến bất kỳ quyền sudo mà không pkexec, truy cập vật lý hoặc khởi động lại, vv
sudo cp /etc/sudoers /etc/sudoers.bak
trên RedHat Dựa phân phối sử dụng:
su - root
và nhập mật khẩu của bạn, sau đó:
echo 'YOURUSERNAME ALL=(ALL:ALL) ALL' >> /etc/sudoers
để thêm người sử dụng trong sudoers file.
https: //access.redhat. com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/2/html/Getting_Started_Guide/ch02s03.html –
- 1. Thay đổi thư mục tập lệnh thành homedir của người dùng trong tập lệnh shell
- 2. Phụ thêm vào crontab bằng tập lệnh shell trên Ubuntu
- 3. Tạo người dùng mysql thông qua dòng lệnh linux?
- 4. gửi nhiều tập tin từ tập lệnh shell qua đầu vào tiêu chuẩn
- 5. Thêm tệp vào redmine qua dòng lệnh
- 6. Thay đổi nội dung của tệp thông qua tập lệnh shell
- 7. không đợi người dùng nhập vào tập lệnh mong đợi
- 8. Làm thế nào để chạy lệnh shell thông qua vimscript?
- 9. Thay đổi thành người dùng root bên trong tập lệnh shell
- 10. Kiểm tra tập lệnh Shell
- 11. Nhập từ trong tập lệnh shell
- 12. tập lệnh shell thêm hậu tố mỗi dòng
- 13. Làm cách nào để truyền tham số cho tập lệnh Ant, được gọi thông qua tập lệnh shell?
- 14. thêm tập lệnh vào build.gradle
- 15. Chuyển người dùng trong tập lệnh init?
- 16. nhạc có tập lệnh shell
- 17. Sử dụng lệnh passwd từ trong tập lệnh shell
- 18. Cách tạo người dùng từ django shell
- 19. linux shell thêm vào thông số biến chỉ huy
- 20. Khởi chạy tập lệnh dưới dạng root thông qua ADB
- 21. Tập lệnh shell Linux để thêm số 0 đứng đầu vào tên tệp
- 22. tự xóa tập lệnh shell
- 23. đầu ra của tập lệnh shell vào clipboard
- 24. Số lần chuyển hướng đầu vào của tập lệnh shell
- 25. Cách chuyển hướng đầu ra của lệnh shell vào đầu vào tập lệnh Python?
- 26. chạy lệnh với tư cách người dùng siêu từ tập lệnh python
- 27. Có thể xác định xem Chrome có đang ở chế độ ẩn danh thông qua tập lệnh người dùng không?
- 28. chạy tập lệnh csh từ bash, thay đổi shell tạm thời qua lệnh
- 29. cách chạy tập lệnh với tư cách người dùng khác không có mật khẩu
- 30. Thêm cờ vào tập lệnh theo lô
Tôi không chắc tôi hiểu kết nối, tại sao bạn cần phải thêm người dùng vào sudoers để có thể chạy Ruby? –
Không có gì để làm với Ruby. Kịch bản tôi đang chạy bên trong ruby, yêu cầu ruby để chạy với quyền sudo, do đó lý do của sudo. Đừng lo lắng về phần ruby, đây là về việc chỉnh sửa sudoers – nickw444
Sẽ có ý nghĩa hơn khi thêm một mục nhập nhóm vào '/ etc/sudoers' và thêm người dùng vào nhóm đó thay vì liên tục cập nhật' sudoers 'tập tin? –