Saturday, June 20, 2015



1. Users
1.1 Khái niệm
Users là bất cứ ai sử dụng máy tính, OS cho phép tạo ra user để truy cập và điều khiển (access control) hệ thống file, tương tác với các service dưới kernel, ... etc.
Users được chia làm hai loại là:
+ normal user : trên một máy tính có thể có nhiều user loại thông thường này
superuser (root) : chỉ có duy nhất một user loại này
Trong đó superuser có quyền cao nhất, vd như nó có thể tương tác với kernel mà user thường không được cho phép. Để chuyển vào chế độ root từ user thì linux cung cấp lệnh su (fedora) hoặc sudo (ubuntu), để thoát khỏi chế độ root thì dùng lệnh exit hoặc Ctrl + D.

 [ninhld@localhost ~]$   
 [ninhld@localhost ~]$   
 [ninhld@localhost ~]$ su  
 [root@localhost ninhld]#   
 [root@localhost ninhld]#   
 [root@localhost ninhld]# exit  
 exit  
 [ninhld@localhost ~]$   
 [ninhld@localhost ~]$   
 [ninhld@localhost ~]$   

1.2 Quản lý users
Măc định khi cài đặt xong Linux OS thì bạn đã có một user và một superuser, các thao tác quản lý user phải được thực hiện bởi superuser

+ Tạo / Xóa user
Tạo mới
useradd <tên_user>
Đặ  password cho user
passwd <tên_user>
Để xóa một user
userdel [-r] <tên_user> (tham số -r dùng để xóa luôn thư mục home của user)
+ Remove user & root password
passwd -d  <tên_user>
passwd -d root

/home
Khi một user được tạo ra thì có một thư mục mang tên user được tạo ra trong /home để chứa các dữ liệu cá nhân của user đó. Thông thường các user chỉ được thực hiện các quyền tạo mới, đọc, sửa, chạy các file và thư mục trong thư mục home của mình mà không được phép với thư mục home của người khác.
Riêng superuser có thư mục cá nhân của nó là /root. Các thư mục cá nhân của user/superuser được biểu diễn trên terminal bằng ký hiệu dẫu ngã "~"

 [ninhld@localhost ~]$   
 [ninhld@localhost ~]$ ls -l ~  
 total 128  
 drwxrwxr-x. 5 ninhld ninhld 4096 Feb 19 00:29 carmeter  
 drwxr-xr-x. 2 ninhld ninhld 49152 Jun 7 21:33 Desktop  
 drwxr-xr-x. 6 ninhld ninhld 4096 Jun 7 10:53 Documents  
 drwxr-xr-x. 3 ninhld ninhld 4096 Jun 19 23:12 Downloads  
 drwx------. 14 ninhld ninhld 4096 Jun 20 21:02 Dropbox  
 drwxrwxr-x. 5 ninhld ninhld 4096 Mar 14 19:38 freescale  
 drwxrwxr-x. 8 ninhld ninhld 4096 Jun 14 16:25 Github  
 drwxrwxr-x. 3 ninhld ninhld 4096 Dec 10 2014 GoldenDict  
 drwxrwxrwx. 8 ninhld ninhld 4096 Apr 4 22:23 mini2440  
 drwxr-xr-x. 2 ninhld ninhld 4096 May 31 21:06 Music  
 drwxr-xr-x. 2 ninhld ninhld 16384 Jun 17 22:38 Pictures  
 drwxr-xr-x. 2 ninhld ninhld 4096 Dec 10 2014 Public  
 drwx------. 2 ninhld ninhld 4096 May 30 15:58 SkypeDownload  
 drwxr-xr-x. 2 ninhld ninhld 4096 Dec 10 2014 Templates  
 drwxr-xr-x. 3 ninhld ninhld 4096 May 30 20:09 Videos  
 drwxrwxr-x. 4 ninhld ninhld 4096 May 23 21:02 VirtualBox VMs  
 drwxrwxr-x. 5 ninhld ninhld 4096 May 24 10:51 workspace  
 [ninhld@localhost ~]$   
 [ninhld@localhost ~]$   
 [ninhld@localhost ~]$ su  
 [root@localhost ninhld]#   
 [root@localhost ninhld]# ls -l ~  
 total 8  
 -rw-------. 1 root root 1284 Dec 10 2014 anaconda-ks.cfg  
 -rw-r--r--. 1 root root 1301 Dec 10 2014 initial-setup-ks.cfg  
 [root@localhost ninhld]#   
 [root@localhost ninhld]#   
 [root@localhost ninhld]# exit  
 [ninhld@localhost ~]$   
 [ninhld@localhost ~]$   

User database
Local user information is stored in the /etc/passwd file. To list all user accounts on the system:
cat /etc/passwd
There is one line per account, and each is of the format:
account:password:UID:GID:GECOS:directory:shell
where:
account is the user name
password is the user password
UID is the numerical user ID
GID is the numerical primary group ID for the user
GECOS is an optional field used for informational purposes; usually it contains the full user name
directory is the user's $HOME directory
shell is the user command interpreter (defaults to /bin/sh)


2. Groups
Để thuận tiện cho việc quản lý hàng loạt các user, người ta tạo ra các group là tập hợp các user có cùng quyền hạn đối với một số file hay thư mục nào đó. Chỉ cần một lần thiết lập quyền với file, thư mục cho group thì tất cả các user của group cũng được thiết lập quyền này theo nên rất thuận tiện. Cũng giống như với user, các thao tác dưới đây phải được thực hiện bởi superuser.

Tạo / Xóa / Liệt kê group
Tạo một group mới:
groupadd <tên_group>

Thêm / xóa user vào một group:
gpasswd [-a|d|A] <user_name> <group_name>

-a là add user vào group
-d là delete user khỏi group
-A là đặt một user làm Admininstrator củ a group. Một group có thể không có administrator


Một group có thể không có user, nhưng một user luôn phải thuộc về một group nào đó. Ngay khi một user được tạo ra nó được gán luôn vào một group nào đó gọi là primary group. Với Redhat, Fedora khi user được tạo ra thì một group cũng được tạo ra chứa duy nhất user này, group này có số hiệu GID bằng số hiệu UID của user vừa tạo. Sau primary group, user cũng có thể được add vào các group khác gọi là secondary group.
Một user có thể tham gia nhiều group, lệnh
groups [tên_user] 
liệt kê các group mà user tham gia. Nếu không có đối số tên_user thì mặc định user đang login là đối số .
Group cũng có thể có password nhưng ít gặp. Bình thường chỉ có root mới có quyền join một user vào một group nào đó nhưng khi group được đặt password thì normal user cũng có quyền join group đó bằng lệnh gpasswd –a nếu nó biết password.
Đặt password cho một group:
gpasswd <tên_group>
gỡ password:
gpasswd –r <tên_group>
Group database
cat /etc/group
Danh sách các group được lưu trong file /etc/group. Trong file này, mỗi group là một dòng gồm 4
trường, các trường ngăn cách nhau bởi dấu hai chấm:
- Group name: tên của group.
- Group password: Khi một group được đặt password, nó cho phép các user ngoài group join vào
group. Khi password được thiết lập nó thường không được lưu trong chính file /etc/group mà
được lưu vào một file khác là /etc/gshadow, điều này giống như việc password của user thường
được lưu trong /etc/shadow thay vì /etc/passwd.
- Group ID: mỗi một group có một số hiệu duy nhất gọi là GID. Linux quản lý group theo số GID
này.
- Group members: danh sách các member của group, các member cách nhau bởi dấu phẩy

Ví dụ : 3 dòng cuối của file /etc/group
nsd1:x:501:
nsd2:x:502:
Nhom1:x:503:nsd1, nsd2

Group “nsd1”, “nsd2” không có danh sách member chứng tỏ 2 group này chỉ là primary group củ a các user
“nsd1”, “nsd2”. GID “nsd1” = UID “nsd1” = 501; GID “nsd2” = UID “nsd2” = 502
Group “Nhom1” có GID là 503, có 2 member là nsd1, nsd2

Cả 3 dòng đều có chữ x thể hiện password của 3 group này nếu có sẽ được lưu trong file /etc/gshadow
File /etc/gshadow lưu password của các group mặc dù việc đặt password cho group không phải là việc làm thường thấy.
Trong file /etc/gshadow, mỗi group là một dòng gồm 3 trường, các trường ngăn cách nhau bởi dấu hai chấm
- group name
- group password đã được mã hóa
- administrator của group
- member thường của group

Ví dụ : 3 dòng cuối của file /etc/gshadow
nsd2: !! : :
Nhom1: !! : nsd1: nsd2, nsd3
Nhom2: !! : : nsd1, nsd2, nsd3

Cả 3 group đều không đặt password nên trườ ng password là hai dấu chấm than.
Group “nsd2” không có member chứng tỏ nó chỉ là primary group của user “nsd2”
Group “Nhom1” có administrator là user “nsd1”, 2 member thường là “nsd2”, “nsd3”
Group “Nhom2” không có adminstrator, chỉ có 3 member thườ ng là “nsd1”, “nsd2”, “nsd3”
Để bật/tắt chế độ sử dụng shadow password cho group, dùng lệnh:
gprpconv hoặc grpunconv

Xem thêm tại:
+ Link 1



Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © Lập trình hệ thống nhúng Linux . Powered by Luong Duy Ninh -