Life would be so much simple if we don't care so much

Posts tagged ‘linux_user_group’

Linux Tạo mới group với「 groupadd 」

Trên Linux OS, nếu muốn tạo mới group thì sẽ sử dụng command 「 groupadd 」

Lệnh「 groupadd 」chỉ có 2 option là 「-g 」và「 -o 」
Option「 -g 」sử dụng trong trường hợp chỉ định GID khi tạo group.
Option 「 -o 」sử dụng khi muốn cho phép tạo GID trùng nhau.
Trong case sử dụng lệnh useradd thì có lúc cũng hữu ích khi chỉ định option 「 -o 」nhưng với trường hợp groupadd thì sẽ được sử dụng ở những hoàn cảnh như thế nào? (Tham khảo lại về tạo mới user trên Linux và xem chú thích dưới cùng của lệnh useradd)

Tuỳ theo lệnh groupadd mà sẽ có những thay đổi ở file 「 /etc/group 」và「 /etc/gshadow 」
Việc tạo mới group cũng sẽ được tiến hành dưới quyền của 「 root 」

1. Tạo group với lệnh「 groupadd 」

Tạo group với groupadd như sau:

Format
groupadd 「 Tên group 」
Vd: Trường hợp tạo hogegroup
[root@localhost ~]# groupadd hogegroup
[root@localhost ~]# tail -1 /etc/group
hogegroup:x:515:
↑ File /etc/group, 1 line của hogegroup đã được thêm vào

2. Tạo group với「 groupadd 」có chỉ định GID

Tạo group chỉ định GID với groupadd như sau:

Format
groupadd -g GID 「 Tên group 」
GID dùng để chỉ ID của 1 nhóm group sử dụng bên trong hệ thống. Về cơ bản thì nên chỉ định giá trị định danh duy nhất (unique value)

GID có thể được xem tại file /etc/group. Chi tiết bên trong file etc/group thì có thể tham khảo lại ở bài「  Linux Danh sách group và file /etc/group 」

Vd: Trường hợp tạo group hogegroup và chỉ định GID 520
[root@localhost ~]# groupadd -g 520 hogegroup
[root@localhost ~]# tail -1 /etc/group
hogegroup:x:520:
↑ GID là 520 của group hogegroup sẽ được thêm vào

***Note

Nếu chỉ định 1 group ID trùng với group đã được tạo trước đó, Linux sẽ show warning.

[root@localhost ~]# tail -1 /etc/group
hogegroup:x:520:
[root@localhost ~]# groupadd -g 520 hogegroup2
groupadd: ユーザID 520 が重複しています
Vậy tại sao lại có warning về「 ユーザID 」?
Nếu có option 「 -o 」được chỉ định thì việc GID có bị trùng đi nữa cũng sẽ không có warning xuất hiện. Có thể làm như vậy nhưng có lẽ sẽ chẳng có lợi ích nào cả? (theo ý kiến người viết)

[root@localhost ~]# groupadd -g 520 -o hogegroup2
[root@localhost ~]# tail -2 /etc/group
hogegroup:x:520:
hogegroup2:x:520:

3. Các option của「 groupadd 」và các file liên quan

Tuỳ theo lệnh groupadd mà sẽ có những thay đổi ở file 「 /etc/group 」và「 /etc/gshadow 」

Nếu không sử dụng command thì với có thể sử dụng cách thay đổi trực tiếp nội dung file trong hệ thống

Trích nguồn

http://kazmax.zpp.jp/linux_beginner/groupadd.html

Advertisements

Linux Danh sách group và file /etc/group

Ở Linux OS sẽ có những loại group nào?

Trong trường hợp muốn xem danh sách group thì có thể confirm ở nội dung file /etc/group.

1. Cách xem file /etc/group

Có thể xem thông tin group bằng cách xem file /etc/group
Group name, password, group ID, subgroup, danh sách account của group đều được ghi lại ở file này. Nội dung file /etc/group thường giống như sau:

[hogehoge@localhost ~]$ cat /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
・・・
hoge_group:x:501:hoge_user3,hoge_user2
hoge_group là group name
x 「 x 」tức là password đã được encrypted. 「 x 」có nghĩa là đang sử dụng shadow password
501 Group ID( GID )
hoge_user3,hoge_user2 danh sách các user account mà thuộc về cùng subgroups, phân cách bởi dấu phẩy.

***Note
User có thể thuộc về nhiều group.

Group cơ bản của user được gọi là group chính (primary group) hay initial group. Ngoài group chính ra thì các group mà user thuộc về sẽ được gọi là sub group.
Trong trường hợp có user tạo file thì thông thường, file group sẽ được set là primary group.

2. Login vào group
Lệnh newgrp khi được sử dụng thì có thể login vào group chỉ định.

Format
newgrp 「 Group name」
Khi login vào một group thì group chính của account login sẽ được đổi thành group user đã login vào.
File, directory nếu được tạo ra, thì group mà user login vào sẽ được chỉ định cho các file, directory đó.
Nếu login vào group mà Subgroup ban đầu thì có thể login mà không cần password.
Nếu user login vào 1 group mà user account không thuộc vào thì cần password, hoặc trường hợp password không được thiết lập thì không thể login.

[hoge@localhost ~]$ id -a ← confirm id
uid=500(hoge) gid=501(hoge) 所属グループ=501(hoge),503(subgroup)
↑ primary group は「 hoge 」

[hoge@localhost ~]$ newgrp subgroup ← 「 subgroup 」login vào subgroup
[hoge@localhost ~]$ id -a
uid=500(hoge) gid=503(subgroup) 所属グループ=501(hoge),503(subgroup)
↑ primary group sẽ trở thành「 subgroup 」

[hoge@localhost ~]$ touch test.txt
[hoge@localhost ~]$ ls -l test.txt
-rw-r–r– 1 hoge subgroup 0 5月 9 00:53 test.txt
↑ group của file được tạo sẽ trở thành「 subgroup 」

[hoge@localhost ~]$ exit ← logout từ group
exit
[hoge@kazmax ~]$ id -a
uid=500(hoge) gid=501(hoge) 所属グループ=501(hoge),503(subgroup)
↑ primary group trở lại là「 hoge 」
***Note

Password của group được setting bởi lệnh gpasswd

Format
gpasswd「 Tên group」

3. /etc/group và /etc/gshadow

Tương tự như mối quan hệ của file /etc/shadow và /etc/passwd.
File /etc/group là readable với mọi user. Vì thế phần password cũng có thể được nhìn thấy bởi những người dùng thông thường, thậm chí có thể phân tích được password.
Ở môi trường sử dụng shadow password thì password của group được mã hoá và lưu ở /etc/gshadow. Đây là file readonly của root nên mức security sẽ được nâng lên để người dùng thông thường không thể đọc được.

[hogehoge@localhost ~]$ ls -l /etc/gshadow
-r——– 1 root root 606 5月 9 00:23 /etc/gshadow ← root readonly

4. Xuất danh sách /etc/group
Có thể xuất danh sách user từ file /etc/group

[hogehoge@localhost ~]$ cut -d: -f1 /etc/group
root
bin
daemon
sys
adm
tty
・・・
***Note:
Có thể đăng ký với command alias để tiện sử dụng.
Chẳng han, đăng ký hiển thị với name listgroups
Để có thể thực thi khi login, có thể edit file 「.bashrc」nằm trong thư mục home directory

[hogehoge@localhost ~]$ cd
[hogehoge@localhost ~]$ vi .bashrc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alias listgroups=”cut -d: -f1 /etc/group” ← Thêm vào
・・・
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[hogehoge@localhost ~]$ source .bashrc
[hogehoge@localhost ~]$ listgroups
root
bin
daemon
sys
adm
tty
・・・
***Notes
Ngoài ra, cũng có thể output ra danh sách group với command 「getent」 và option 「group」. Những group đã được dk bởi ldap cũng sẽ được hiện ra.

# getent group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:
disk:x:6:root
lp:x:7:daemon,lp
・・・

Trích nguồn

http://kazmax.zpp.jp/linux_beginner/etc_group.html

User và Group trên Linux OS

Linux là 1 hệ điều hành multi-users. Nhiều users có thể cùng lúc sử dụng 1 máy tính và linux có thể quản lý việc sử dụng của nhiều users đó.

Về user và group trên linux:

1. System admin, general user, system account

Đơn vị quản lý user được gọi là account.
Có những công việc như là tạo user account, xoá user account…vvv
Có những thông tin được lưu trữ trong account được dùng bởi người thật và lưu ở những ứng dụng đặc biệt. Cần thiết phải tách biệt rõ về người sử dụng account đó là người quản trị hệ thống hay người sử dụng hệ thống.

System admin (Quản trị hệ thống)

Account của người quản lý system (system admin) sẽ trở thành “root” hay còn gọi là root user, super user… có quyền mạnh nhất có thể làm bất cứ đều gì trong hệ thống (trừ việc xoá hệ điều hành Linux). Có thể xoá 1 cách dễ dàng cả những file quan trọng trong hệ thống. Ngoài những tác vụ admin ra thì không nên sử dụng root user thì tốt hơn.

General user (Người dùng thông thường)

Người sử dụng system và account thì được gọi là general user
General user thì account sẽ mang tên khác với username “root” ra và các command được sử dụng sẽ giới hạn theo phân quyền.
Cách confirm accountID và group user
[hoge@localhost ~]$ id
uid=500(hoge) gid=501(hoge) group=501(hoge),502(hoge2)
↑ user name:hoge、group hoge
Account tức là user ID được quản lý bên trong system
uid: user ID
gid: group ID
Nếu thuộc về nhiều hơn một group thì tên group sẽ được đặt kế tiếp sau group membership

System Account (Tài khoản hệ thống)

Linux có lưu trữ thông tin account dành cho việc sử dụng các application chuyên dụng.
Khi OS đang start thì sẽ có rất nhiều ứng dụng được run (apache, DB…) nhưng không phải tự do chạy mà sẽ được run bởi 1 account nào đó.

Một tài khoản chuyên dụng dùng để chạy các ứng dụng chuyên dùng trong bên trong hệ thống thì được gọi là tài khoản hệ thống.
Đối với tài khoản hệ thống thì user sẽ không trực tiếp sử dụng nên cần thiết phải thiết lập sao cho không thể đăng nhập được.s

2. Group

Ở Linux có tính năng được gọi là group, có khả năng quản lý account 1 cách logic
Những user ở cùng 1 group thì đối với những file owned bởi group thì sẽ có quyền read, write, và execute.
1 account cũng có thể thuộc nhiều group.

Cách xác định groups của user đang login
[hoge@localhost ~]$ groups
hoge hoge1 hoge2 ← hoge, hoge1, hoge2 là group của user hiện đang login

 

Tham khảo

http://kazmax.zpp.jp/linux_beginner/lin1.html