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 [Thắc mắc] - Cẩn thận với sudo trên *nix của chú conmale.  XML
  [Question]   [Thắc mắc] - Cẩn thận với sudo trên *nix của chú conmale. 20/10/2008 03:41:40 (+0700) | #1 | 155831
[Avatar]
mr_hoang09
Member

[Minus]    0    [Plus]
Joined: 23/04/2007 21:01:03
Messages: 64
Offline
[Profile] [PM]
sudo cho phép người dùng thực thi một lệnh nào đó với quyền superuser hoặc quyền của một người khác như đã ấn định trong hồ sơ sudosers. Giá trị thật sự và xác thực uid (user id) và gid (group id) được gán với mục tiêu user như đã ấn định trong hồ sơ passwd và thành phần nhóm được ứng động dựa trên hồ sơ group (ngoại trừ chọn lựa -P được dùng). Nếu người thực thi (sudo) là root hoặc nếu chủ quyền thực thi của mục tiêu cũng là người thực thi thì sẽ không đòi hỏi mật khẩu. Ngoài ra, sudo đòi hỏi người dùng xác thực danh tánh của họ bằng mật khẩu theo mặc định (LƯU Ý: trong cấu hình mặc định, đây là mật khẩu của người dùng chớ không phải là mật khẩu của root). Sau khi người dùng đã được xác thực, giá trị dấu ấn thời gian được cập nhật và người dùng có thể sử dụng sudo mà không cần phải cung cấp mật khẩu trong một khoảng thời gian ngắn (5 phút theo mặc định ngoại trừ đã được chỉnh sửa trong sudoers). 

Muốn thay đổi cái mặc định này thì làm thế nào hả chú?

#!/bin/sh
su -
......
/usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf -k start 

Sao khi thực hiện dòng này nó không đòi pass của root?
Có lẽ điểm thứ 2 chính là điểm khó thực hiện và cần xem xét kỹ nhất. Phần lớn mọi người khi thêm 1 user vào /etc/sudoers đều thường làm giống như:

quanta ALL=(ALL) ALL


Đây chính là ví dụ minh họa cho 2 mặt của vấn đề "tiện dụng" và "bảo mật" trong "Đối thoại với Rookie" của anh 

@quanta: Em muốn hỏi ngoài những phần lớn là thực hiện theo cách này(tiện dụng) thì thực hiện để "bảo mật" thì phải làm thế nào ạ?

[Up] [Print Copy]
  [Question]   [Thắc mắc] - Cẩn thận với sudo trên *nix của chú conmale. 20/10/2008 04:04:06 (+0700) | #2 | 155833
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

mr_hoang09 wrote:
sudo cho phép người dùng thực thi một lệnh nào đó với quyền superuser hoặc quyền của một người khác như đã ấn định trong hồ sơ sudosers. Giá trị thật sự và xác thực uid (user id) và gid (group id) được gán với mục tiêu user như đã ấn định trong hồ sơ passwd và thành phần nhóm được ứng động dựa trên hồ sơ group (ngoại trừ chọn lựa -P được dùng). Nếu người thực thi (sudo) là root hoặc nếu chủ quyền thực thi của mục tiêu cũng là người thực thi thì sẽ không đòi hỏi mật khẩu. Ngoài ra, sudo đòi hỏi người dùng xác thực danh tánh của họ bằng mật khẩu theo mặc định (LƯU Ý: trong cấu hình mặc định, đây là mật khẩu của người dùng chớ không phải là mật khẩu của root). Sau khi người dùng đã được xác thực, giá trị dấu ấn thời gian được cập nhật và người dùng có thể sử dụng sudo mà không cần phải cung cấp mật khẩu trong một khoảng thời gian ngắn (5 phút theo mặc định ngoại trừ đã được chỉnh sửa trong sudoers). 

Muốn thay đổi cái mặc định này thì làm thế nào hả chú?

#!/bin/sh
su -
......
/usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf -k start 

Sao khi thực hiện dòng này nó không đòi pass của root?
Có lẽ điểm thứ 2 chính là điểm khó thực hiện và cần xem xét kỹ nhất. Phần lớn mọi người khi thêm 1 user vào /etc/sudoers đều thường làm giống như:

quanta ALL=(ALL) ALL


Đây chính là ví dụ minh họa cho 2 mặt của vấn đề "tiện dụng" và "bảo mật" trong "Đối thoại với Rookie" của anh 

@quanta: Em muốn hỏi ngoài những phần lớn là thực hiện theo cách này(tiện dụng) thì thực hiện để "bảo mật" thì phải làm thế nào ạ?

 


su - có liên quan gì đến sudo?
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Re: [Thắc mắc] - Cẩn thận với sudo trên *nix của chú conmale. 20/10/2008 05:34:59 (+0700) | #3 | 155850
[Avatar]
mr_hoang09
Member

[Minus]    0    [Plus]
Joined: 23/04/2007 21:01:03
Messages: 64
Offline
[Profile] [PM]
su - có liên quan gì đến sudo? 

Code:
su - run a shell with substitute user and group IDs
sudo - execute a command as another user

theo cháu thì su "lớn hơn" sudo.
mối liên hệ thì hình như ko liên quan gì với nhau, vì mỗi lệnh thực hiện 1 công việc khác nhau.
sudo chỉ làm thực hiện 1 lệnh với quyền của người khác(nhưng vẫn còn là mình), còn su thì chạy 1 shell (nhiều lệnh hơn) nhưng trở thành một người khác, exit để quay lại chính mình.
khi nãy cháu đọc nhầm, chú chạy shell này với sudo, đây giống như tự mình bốc đầu mình lên ấy nhỉ?
sudo thực hiện lệnh với quyền của root, mà trong script đó lại su - (1 shell đăng nhập vào root) nên sẽ ko cần pass của root. làm công việc này chỉ cần pass của user bình thường.
mà muốn khi sudo phải dùng pass của root thì làm thế nào hả chú?(cháu chưa search :p )
[Up] [Print Copy]
  [Question]   Re: [Thắc mắc] - Cẩn thận với sudo trên *nix của chú conmale. 20/10/2008 05:48:09 (+0700) | #4 | 155851
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

mr_hoang09 wrote:
su - có liên quan gì đến sudo? 

Code:
su - run a shell with substitute user and group IDs
sudo - execute a command as another user

theo cháu thì su "lớn hơn" sudo.
mối liên hệ thì hình như ko liên quan gì với nhau, vì mỗi lệnh thực hiện 1 công việc khác nhau.
sudo chỉ làm thực hiện 1 lệnh với quyền của người khác(nhưng vẫn còn là mình), còn su thì chạy 1 shell (nhiều lệnh hơn) nhưng trở thành một người khác, exit để quay lại chính mình.
khi nãy cháu đọc nhầm, chú chạy shell này với sudo, đây giống như tự mình bốc đầu mình lên ấy nhỉ?
sudo thực hiện lệnh với quyền của root, mà trong script đó lại su - (1 shell đăng nhập vào root) nên sẽ ko cần pass của root. làm công việc này chỉ cần pass của user bình thường.
mà muốn khi sudo phải dùng pass của root thì làm thế nào hả chú?(cháu chưa search :p )
 


su - không có liên quan gì đến sudo thì mắc gì có chủ đề "[Thắc mắc] - Cẩn thận với sudo trên *nix của chú conmale."?

Còn chuyện chưa search thì search đi. Chỉ nên hỏi những điều chưa hiểu chớ không nên hỏi những điều chưa tìm hiểu.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Re: [Thắc mắc] - Cẩn thận với sudo trên *nix của chú conmale. 20/10/2008 06:08:23 (+0700) | #5 | 155855
[Avatar]
mr_hoang09
Member

[Minus]    0    [Plus]
Joined: 23/04/2007 21:01:03
Messages: 64
Offline
[Profile] [PM]
Đúng là cháu đã đọc thiếu (vì chú chạy shell với sudo)
Nhưng trong hoàn cảnh như chú: Nghĩa là khi sudo chỉ cần pass của user bình thường thì ko cần phải dựa vào những sơ hở trong những script như thế.
Nếu gặp hoàn cảnh như vậy thi mình dùng:
Code:
sudo passwd root

thì có thể thay đổi pass của người root và đăng nhập đàng hoàng vào root.
(những thắc mắc này chỉ ở tầm hiểu biết của cháu, mong mọi người chỉ bảo thêm)
[Up] [Print Copy]
  [Question]   Re: [Thắc mắc] - Cẩn thận với sudo trên *nix của chú conmale. 20/10/2008 11:51:14 (+0700) | #6 | 155883
[Avatar]
quanta
Moderator

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

Có vẻ bạn chưa hiểu về 'sudo'?

mr_hoang09 wrote:

mà muốn khi sudo phải dùng pass của root thì làm thế nào hả chú?(cháu chưa search :p )
 

mr_hoang09 wrote:

Nhưng trong hoàn cảnh như chú: Nghĩa là khi sudo chỉ cần pass của user bình thường thì ko cần phải dựa vào những sơ hở trong những script như thế.
 

Bạn tìm hiểu về chữ s trong kết quả của lệnh sau:

$ ls -l /usr/bin/sudo
---s--x--x 2 root root 148836 2008-03-31 21:13 /usr/bin/sudo
 
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Re: [Thắc mắc] - Cẩn thận với sudo trên *nix của chú conmale. 20/10/2008 12:53:56 (+0700) | #7 | 155891
[Avatar]
mr_hoang09
Member

[Minus]    0    [Plus]
Joined: 23/04/2007 21:01:03
Messages: 64
Offline
[Profile] [PM]
để em man sudo lại
mới thoát ly win đc chừng 1 tháng nên còn lúng túng.
cảm ơn mọi người, chừng nào đủ trình em lại tiếp tục.
[Up] [Print Copy]
  [Question]   Re: [Thắc mắc] - Cẩn thận với sudo trên *nix của chú conmale. 21/10/2008 12:58:45 (+0700) | #8 | 156000
MrTux
Member

[Minus]    0    [Plus]
Joined: 07/10/2008 10:35:31
Messages: 49
Offline
[Profile] [PM]

quanta wrote:
Hello mr_hoang09,

Có vẻ bạn chưa hiểu về 'sudo'?

mr_hoang09 wrote:

mà muốn khi sudo phải dùng pass của root thì làm thế nào hả chú?(cháu chưa search :p )
 

mr_hoang09 wrote:

Nhưng trong hoàn cảnh như chú: Nghĩa là khi sudo chỉ cần pass của user bình thường thì ko cần phải dựa vào những sơ hở trong những script như thế.
 

Bạn tìm hiểu về chữ s trong kết quả của lệnh sau:

$ ls -l /usr/bin/sudo
---s--x--x 2 root root 148836 2008-03-31 21:13 /usr/bin/sudo
 
 


Theo cháu hiểu thì chữ s là Superuser đúng không ạ ?
[Up] [Print Copy]
  [Question]   Re: [Thắc mắc] - Cẩn thận với sudo trên *nix của chú conmale. 21/10/2008 13:20:18 (+0700) | #9 | 156005
Mr.Khoai
Moderator

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

Chữ s trong permission của files không phải là "super user" gì đâu. Trước khi muốn hiểu cặn kẽ vấn đề này, mình cần phải hiểu:

- files permissions trên linux là như thế nào. Tại sao mình có thể "chạy" được một file, và khi chạy, file đó chạy dưới chủ quyền gì.

- Hiều thêm về user id, effective user id, và real user id. Sau đó tìm hiểu xem khi chạy một file, nó có thể chạy dưởi chủ quyền của ai.

- Cuối cùng, đọc lại man sudo, và man su. Sau đó nếu có điểm nào chưa hiểu thì mình có thể bàn thêm.

khoai
[Up] [Print Copy]
  [Question]   Re: [Thắc mắc] - Cẩn thận với sudo trên *nix của chú conmale. 22/10/2008 17:15:53 (+0700) | #10 | 156153
[Avatar]
mr_hoang09
Member

[Minus]    0    [Plus]
Joined: 23/04/2007 21:01:03
Messages: 64
Offline
[Profile] [PM]

quanta wrote:
Hello mr_hoang09,

Có vẻ bạn chưa hiểu về 'sudo'?

mr_hoang09 wrote:

mà muốn khi sudo phải dùng pass của root thì làm thế nào hả chú?(cháu chưa search :p )
 

mr_hoang09 wrote:

Nhưng trong hoàn cảnh như chú: Nghĩa là khi sudo chỉ cần pass của user bình thường thì ko cần phải dựa vào những sơ hở trong những script như thế.
 

Bạn tìm hiểu về chữ s trong kết quả của lệnh sau:

$ ls -l /usr/bin/sudo
---s--x--x 2 root root 148836 2008-03-31 21:13 /usr/bin/sudo
 
 

Chữ s là viết tắt của chữ setuid.
theo em biết thì có thêm s này là khi chạy phải cần xác thực mật khẩu của root.

[Up] [Print Copy]
  [Question]   Re: [Thắc mắc] - Cẩn thận với sudo trên *nix của chú conmale. 22/10/2008 22:16:32 (+0700) | #11 | 156171
[Avatar]
quanta
Moderator

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

mr_hoang09 wrote:

Chữ s là viết tắt của chữ setuid.
 

Chính xác hơn là suid bit.

mr_hoang09 wrote:

theo em biết thì có thêm s này là khi chạy phải cần xác thực mật khẩu của root.
 

Sai rồi.

Thêm một ví dụ nữa:

$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 22532 2008-04-08 20:48 /usr/bin/passwd
 
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Re: [Thắc mắc] - Cẩn thận với sudo trên *nix của chú conmale. 23/10/2008 09:15:44 (+0700) | #12 | 156220
[Avatar]
mr_hoang09
Member

[Minus]    0    [Plus]
Joined: 23/04/2007 21:01:03
Messages: 64
Offline
[Profile] [PM]
/hvaonline/posts/list/16026.html
em nói thế này có đúng ko anh:
khi set user ID thì file sẽ chạy với quyền của owned của nó.
Hôm qua em có đọc sách nhưng tiếng anh nên chưa hiểu rõ lắm.
The passwd program is a typical example of such a program. Regular users can use this program to modify the
password they use for logging in. By default on Red Hat Linux 9, passwords are encrypted and stored in the
file /etc/shadow that can be modified only by the root user. From what we have seen so far, when a user
executes the passwd program, the program would assume just the privileges assigned to that user. So how
does the password program modify this file to update it with the new password? The trick lies in setting the
setuid bit:
$ ls −al /usr/bin/passwd
−r−s−−x−−x 1 root root 15368 May 28 2002 /usr/bin/passwd
The s indicates the setuid bit for this program. Thus when the passwd program executes, it assumes the
privileges of the root user. Since it is restricted to just updating the /etc/shadow file, there is not much of a risk
involved. In simple terms, assigning the setuid bit by a privileged user to a program owned by them indicates
that other users may execute the program with the same privileges as the owner. Along the lines of the setuid
bit is the setgid bit. When set, the program executes with the privileges of the group it belongs to.
 

cả cuốn sách thật dày mà nói về cái này có bấy nhiêu thôi.
Cảm ơn anh!
[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|