2012-05-02 34 views
5

Tôi muốn xóa nhóm bánh xe (uncommnet #) trong tập tin/etc/sudoers vì vậy mẫu Regex tôi nên sử dụng là gì?Mẫu regex để chỉnh sửa tập tin/etc/sudoers

#cat /etc/sudoers 
.... 
.... 
## Allows members of the 'sys' group to run networking, software, 
## service management apps and more. 
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS 

## Allows people in group wheel to run all commands 
# %wheel  ALL=(ALL)  ALL 

## Same thing without a password 
# %wheel ALL=(ALL)  NOPASSWD: ALL 

.... 
.... 

Tôi muốn xóa # khỏi dòng sau.

... 
# %wheel ALL=(ALL)  NOPASSWD: ALL 
... 

Trả lời

15

Bạn không nên chỉnh sửa tệp /etc/sudoers với bất kỳ loại tập lệnh nào. Có một lý do cho lệnh visudo. Các chỉnh sửa đối với tệp sudoers phải hiếm và được kiểm soát tốt.

Điều đó đang được nói, nếu trình chỉnh sửa của bạn cho lệnh visudo là vi, bạn có thể chạy một cái gì đó như :%s/^# %wheel/%wheel/ để bỏ ghi chú tất cả các dòng bắt đầu bằng %wheel.

Hoặc, nếu bạn reeeeeeally nghĩ rằng nó là cần thiết:

sudo sed --in-place 's/^#\s*\(%wheel\s\+ALL=(ALL)\s\+NOPASSWD:\s\+ALL\)/\1/' /etc/sudoers 

Run nó mà không có sự --in-place đầu tiên để kiểm tra đầu ra. Sử dụng nó có nguy cơ của riêng bạn.

+0

Tôi biết! nhưng chúng tôi có cài đặt hàng loạt và tôi không thể làm điều đó bằng tay. Chỉnh sửa dòng duy nhất của nó đó là lý do tại sao tôi không lo lắng. – Satish

+0

Thì đấy! Có bạn đi !!! Bạn hiểu rồi. Nó hoạt động! – Satish

+0

\ s * có nghĩa là gì? Tôi tin rằng không gian màu trắng .. – Satish

3

Sau đây nên làm việc:

sed -i 's/^#\s*\(%wheel\s*ALL=(ALL)\s*NOPASSWD:\s*ALL\)/\1/' /etc/sudoers 
Các vấn đề liên quan