banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Cẩn thận khi chỉnh sửa file sudoers  XML
  [Question]   Cẩn thận khi chỉnh sửa file sudoers 20/02/2008 00:57:19 (+0700) | #1 | 115493
pearltran
Member

[Minus]    0    [Plus]
Joined: 15/08/2007 13:10:08
Messages: 33
Offline
[Profile] [PM]
Trước tiên các bạn hãy đọc bài này của anh conmale để biết về sudo http://hvaonline.net/hvaonline/posts/list/17027.html
Bài viết này tôi sẽ nói về điểm thứ 2 mà anh conmale đã đề cập đến đó là ấn định cụ thể từng lệnh được quyền chạy sudo và điều tra kỹ lưỡng nội dung của chúng.Trước hết để 1 user có thể chạy lệnh sudo thì phải đưa user đó vào file sudoers.Để mở file sudoers dùng lệnh

Code:
visudo -f /etc/sudoers
Bạn nên dùng visudo để chỉnh sửa vì khi chỉnh sửa chúng ta save lại nếu có lỗi cú pháp xảy ra trong sudoers nó sẽ thông báo .Nếu xảy ra lỗi cú pháp trong sudoers thì lệnh sudo sẽ không dùng được
Nếu ta đưa user pearl vào với lệnh này
Code:
pearl ALL=(ALL) ALL

pearl có thể chạy tất cả các lệnh như là root hoặc user khác.Điều này rất nguy hiểm vì pearl có thể trở thành root bắng cách
Code:
sudo su root
Nó sẽ yêu cầu đánh password nhưng password ở đây là password của user pearl.Suýt quên,khi bạn chạy lệnh sudo lần đầu nó sẽ hỏi bạn password của bạn và sau 1 khoảng thời gian nhất định nó sẽ hỏi lại
Bây giờ muốn user pearl chỉ được quyền chạy 1 lệnh chẳng hạn như kill thì
Code:
pearl ALL=/bin/kill

Trong file sudoers bạn sẽ thấy cmd_ailas,Đây là các biệt danh lệnh nó chứa tập hợp các lệnh.VD:Cmd_alias DELEGATING=/bin/chmod,bin/chown,/bin/chgrp
Muốn user pearl chỉ có quyền chạy chạy các lệnh như /bin/chmod,/bin/chown./bin/chgrp thì


Code:
pearl ALL=DELEGATING

Muốn user pearl được chạy tất cả các lệnh nhưng không được chạy lệnh su thì có 2 cách:
cách 1:

Code:
pearl ALL=ALL, !/bin/su

nhưng cách với cách này user pearl bằng cách copy lệnh su sang 1 nơi khác


Code:
cp /bin/su /

Sau đóCode:
sudo /su

vậy là user pearl đã trở thành root
Cách 2: Dùng NOEXEC.
Máy tôi không hỗ trợ NOEXEC nên chưa có dịp thử nghiệm thằng này.Các bạn có thể vào trang man sudoers để đọc về nó
Khi đưa 1 user vào trong file sudoers thì không nên cho user đó chạy các lệnh mà chỉ có root mới chạy được như chmod,chgrp,chown,kill,...và đặc biệt là lệnh su
Tác giả:pearltran
[Up] [Print Copy]
  [Question]   Cẩn thận khi chỉnh sửa file sudoers 20/02/2008 12:19:39 (+0700) | #2 | 115624
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

pearltran wrote:

...
Cách 2: Dùng NOEXEC.
Máy tôi không hỗ trợ NOEXEC nên chưa có dịp thử nghiệm thằng này.Các bạn có thể vào trang man sudo để đọc về nó
...
 

Trong man sudoers có đoạn này:

If sudo has been compiled with noexec support and the underlying operating system supports it, the NOEXEC tag can be used to prevent a dynamically-linked executable from running further commands itself.

In the following example, user aaron may run /usr/bin/more and /usr/bin/vi but shell escapes will be disabled.

aaron shanty = NOEXEC: /usr/bin/more, /usr/bin/vi
 

Tạm dịch:
Nếu sudo được biên dịch hỗ trợ noexec và hệ điều hành cũng support nó, NOEXEC có thể được dùng để ngăn cản thi hành một liên kết động ngoài bản thân những lệnh đang chạy.

Giả sử trong /etc/sudoers tớ để thế này:

quanta ALL=(ALL) ALL, NOEXEC: /bin/su, <other_command>
 

tức là user quanta vẫn có thể dùng $ su bình thường nhưng nếu thử $ sudo su root thì sẽ "bị" báo cáo ngay:
su: /bin/bash: Permission denied 

Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Re: Cẩn thận khi chỉnh sửa file sudoers 25/02/2008 05:39:42 (+0700) | #3 | 116486
[Avatar]
lihavim
Elite Member

[Minus]    0    [Plus]
Joined: 08/06/2004 15:19:32
Messages: 506
Offline
[Profile] [PM]
Nếu đã cấp cho user đó quyền chạy mọi cái thì việc chuyển sang root có ích gì nhỉ?
[Up] [Print Copy]
  [Question]   Re: Cẩn thận khi chỉnh sửa file sudoers 26/02/2008 00:58:56 (+0700) | #4 | 116584
[Avatar]
lQ
Moderator

Joined: 29/03/2005 17:06:20
Messages: 494
Offline
[Profile] [PM]
Thực ra nếu dùng sudo thì tui thấy trước 01 ưu điểm: sudo sẽ lưu lại tất cả các command đi kèm theo nó (dĩ nhiên là ko chơi với sudo su root).
[Up] [Print Copy]
  [Question]   Cẩn thận khi chỉnh sửa file sudoers 26/02/2008 23:31:14 (+0700) | #5 | 116736
pearltran
Member

[Minus]    0    [Plus]
Joined: 15/08/2007 13:10:08
Messages: 33
Offline
[Profile] [PM]

quanta wrote:

pearltran wrote:

...
Cách 2: Dùng NOEXEC.
Máy tôi không hỗ trợ NOEXEC nên chưa có dịp thử nghiệm thằng này.Các bạn có thể vào trang man sudo để đọc về nó
...
 

Trong man sudoers có đoạn này:

If sudo has been compiled with noexec support and the underlying operating system supports it, the NOEXEC tag can be used to prevent a dynamically-linked executable from running further commands itself.

In the following example, user aaron may run /usr/bin/more and /usr/bin/vi but shell escapes will be disabled.

aaron shanty = NOEXEC: /usr/bin/more, /usr/bin/vi
 

Tạm dịch:
Nếu sudo được biên dịch hỗ trợ noexec và hệ điều hành cũng support nó, NOEXEC có thể được dùng để ngăn cản thi hành một liên kết động ngoài bản thân những lệnh đang chạy.

Giả sử trong /etc/sudoers tớ để thế này:

quanta ALL=(ALL) ALL, NOEXEC: /bin/su, <other_command>
 

tức là user quanta vẫn có thể dùng $ su bình thường nhưng nếu thử $ sudo su root thì sẽ "bị" báo cáo ngay:
su: /bin/bash: Permission denied 

 

Anh quanta thử nghiệm trên distro nào vậy?em vừa dùng cách trên Fedora 6 thì user vẫn có thể chạy các lệnh không cho chạy bằng cách



Code:
cp /bin/su ./Desktop

Sau đó
Code:
sudo ./Desktop/su root


[Up] [Print Copy]
  [Question]   Cẩn thận khi chỉnh sửa file sudoers 26/02/2008 23:45:11 (+0700) | #6 | 116738
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

pearltran wrote:

Anh quanta thử nghiệm trên distro nào vậy?em vừa dùng cách trên Fedora 6 thì user vẫn có thể chạy các lệnh không cho chạy bằng cách
Code:
cp /bin/su ./Desktop

Sau đó
Code:
sudo ./Desktop/su root

 

Ừ nhỉ, cũng giống cách 1 của bạn, vẫn chạy được khi copy lệnh đó sang chỗ khác. Có lẽ cần đọc lại man sudoers.
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Re: Cẩn thận khi chỉnh sửa file sudoers 06/05/2008 10:53:54 (+0700) | #7 | 129152
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
Liên quan đến vấn đề này, xin mời mọi người cùng thảo luận về wheel group.
Khi muốn cho phép 1 user có thể thực hiện lệnh với quyền root, bạn sẽ:
+ Thêm user đó vào wheel group và uncomment dòng # %wheel ALL=(ALL) ALL?
+ Hay là thêm <user_name> ALL=(ALL) ALL vào /etc/sudoers?

Cuối cùng, bạn làm thế nào để ngăn cản người dùng thực hiện: $ sudo su - root?
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Re: Cẩn thận khi chỉnh sửa file sudoers 06/05/2008 18:30:54 (+0700) | #8 | 129192
Mr.Khoai
Moderator

Joined: 27/06/2006 01:55:07
Messages: 954
Offline
[Profile] [PM]
Anh quanta,

Anh cản sudo su - (sử dụng NOEXEC) thì user chỉ việc copy su thành một file khác rồi execute mà thôi. Tốt nhất là chỉ nên liệt kê một số lệnh mà user được phép sudo, và tất nhiên là phải sử dụng absolute path.

Sử dụng group wheel có lợi sau:

- Anh không cần chỉnh sudoers, mà chỉ cần add user vào group wheel là được.
- Group wheel có thể chứa một nhóm super-user (hoặc admin) mà anh tin tưởng, và quản lý theo cả nhóm

Bất lợi khi sử dụng group wheel là mình không thể chỉnh cụ thể một user có thể làm gì, trong khi các user khác trong group không thể. Tùy theo nhu cầu em nghĩ ứng dụng group wheel sẽ có điểm lợi/hại khác nhau.

khoai
[Up] [Print Copy]
  [Question]   Cẩn thận khi chỉnh sửa file sudoers 16/10/2009 05:47:11 (+0700) | #9 | 195707
[Avatar]
vikjava
Elite Member

[Minus]    0    [Plus]
Joined: 28/06/2004 02:32:38
Messages: 926
Location: NQN
Offline
[Profile] [PM]
xin hỏi đối với ubuntu thì phần wheel group hoặc tính năng như wheel group đươc thực hiện như thế nào. Mới tìm hiểu về cái này mong mọi người giúp. thân
[Up] [Print Copy]
  [Question]   Cẩn thận khi chỉnh sửa file sudoers 16/10/2009 06:18:05 (+0700) | #10 | 195710
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

vikjava wrote:
xin hỏi đối với ubuntu thì phần wheel group hoặc tính năng như wheel group đươc thực hiện như thế nào. Mới tìm hiểu về cái này mong mọi người giúp. thân 

Bác tham khảo cái http://www.kernel-panic.org/wiki/GroupWheel.
Let's build on a great foundation!
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|