Linux专栏7:用户与权限管理

用户和用户组

1 Linux用户

Linux是一个多用户操作系统,不同的用户拥有不同的权限,可以查看和操作不同的文件。 Ubuntu有三种用户:

1 初次创建的用户;2 root 用户;3 普通用户;

初次创建的用户权限比普通用户多,但是没有root用户多。

linux用户记录在/etc/passwd这个文件中;linux用户密码记录在/etc/shadow这个文件中;每个用户都有一个ID,叫做UID。

// 查看用户记录
ding@ding-ubuntu:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
	......
gdm:x:121:125:Gnome Display Manager:/var/lib/gdm3:/bin/false
ding:x:1000:1000:ding,,,:/home/ding:/bin/bash

2 Linux用户组

为了方便管理,将用户进行分组。这样就可以设置非本组人员不能访问某些文件。每个用户可以属于多个不同的组。

用户和用户组说明:

用户:家里有你、弟弟、妹妹个人,每个人都有自己的房间,你们三个人都是用户,你们都不能随便的乱翻别人的房间;

用户组:你们三个都是一个家庭的,也就是属于同一个用户组,你们三个可以共用厨房,书房等空间;

因此:

用户和用户组的存在就是为了控制文件的访问权限的,每个用户组都有一个ID,叫做GID,用户组信息存储在 / etc / group 文件中。如下所示:

ding@ding-ubuntu:/etc$ cat group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
sudo:x:27:ding		// ding 为 sudo 这个用户组的成员
	......
// ding为用户组名,x为密码信息,1000为用户组ID,最后的:后为用户组成员
ding:x:1000:
sambashare:x:126:ding

可以看到,用户可以属于多个用户组。

3 创建用户组

1 图形化界面安装

安装工具:sudo apt-get install gnome-system-tools

2 命令行创建用户和用户组

添加用户

添加用户:adduser 用户名
用户查询:finger 用户名
修改用户密码:passwd 用户名
删除用户:deluser 用户名

添加用户和查询用户测试:

// 创建用户
ding@ding-ubuntu:~$ sudo adduser ding_u2
[sudo] ding 的密码: 
正在添加用户"ding_u2"...
正在添加新组"ding_u2" (1001)...
正在添加新用户"ding_u2" (1001) 到组"ding_u2"...
创建主目录"/home/ding_u2"...
正在从"/etc/skel"复制文件...
输入新的 UNIX 密码: 
重新输入新的 UNIX 密码: 
passwd:已成功更新密码
正在改变 ding_u2 的用户信息
请输入新值,或直接敲回车键以使用默认值
	全名 []: 
	房间号码 []: 
	工作电话 []: 
	家庭电话 []: 
	其它 []: 
这些信息是否正确? [Y/n] y
// 查询用户信息
ding@ding-ubuntu:~$ finger ding_u2
Login: ding_u2        			Name: 
Directory: /home/ding_u2            	Shell: /bin/bash
Never logged in.
No mail.
No Plan.

添加用户组

添加用户组:addgroup 用户组名
显示组内用户名:groups 用户组名
删除用户组:delgroup 用户组名

添加用户组和删除用户组测试:

// 添加用户组
ding@ding-ubuntu:/home$ sudo addgroup ding_g2
正在添加组"ding_g2" (GID 1001)...
完成。
// 查看 ding 用户组内用户
ding@ding-ubuntu:/home$ groups ding 	// 查看 ding 这个用户组
ding : ding adm cdrom sudo dip plugdev lpadmin sambashare
// 查看刚创建的用户组的用户
ding@ding-ubuntu:/home$ sudo groups ding_g2
groups: "ding_g2": no such user		// 没有用户,因为刚创建完还没添加
// 删除用户组
ding@ding-ubuntu:/home$ sudo delgroup ding_g2
正在删除组 'ding_g2'...
完成。

 

权限管理

1 文件权限是指不同的用户或用户组对某个文件拥有的权限,文件的权限分为三种:

r:读;w:写;x:可执行;

-rw-r--r-- 就是文件权限,第一位表示文件类型,剩下的每三位表示一组权限。分别对应拥有者权限拥有者所在组权限其他用户权限

可以使用二进制表示文件权限:r = 4;w = 2;x = 1;

test.c 文件的权限说明:

ding@ding-ubuntu:~$ ls -l test.c 
-rw-r--r-- 1 ding ding 121 2月   8 21:34 test.c

权限说明:
所属用户拥有读写权限无可执行权限;
组内其他用户拥有读权限 无写权限 无可执行权限;
其他用户仅有可读权限;

用户和用户组说明:
第一个 ding 表示所属用户;
第二个 ding 表示所属用户组;

再看一个系统文件的权限说明:

ding@ding-ubuntu:/dev$ ls -l vcsu
crw-rw---- 1 root tty 7, 64 2月   8 21:26 vcsu

权限说明:
	所属用户为 root 用户,拥有 读写权限 无可执行权限;
	所属用户组为 tty,即 tty 这个组内的所有成员都有 读写权限 无可执行权限;
	其他用户为 ---,对 vcsu 文件无任何权限;

2 Linux 文件权限修改

修改文件权限命令:chmod

修改文件所属用户:chown

修改文件权限测试:

ding@ding-ubuntu:~$ ls -l test.c 	// 查看 test.c 文件的权限
-rw-r--r-- 1 ding ding 113 2月   8 23:43 test.c
// 所属用户为ding,用户组为ding
ding@ding-ubuntu:~$ cat test.c 		// 源文件
/* 测试文件 */

#include <stdio.h>

int main(int argc, char argv[])
{
	printf("hello world\n");
	return 0;
}
ding@ding-ubuntu:~$ gcc test.c -o test	// 使用 gcc 编译 test.c
ding@ding-ubuntu:~$ ls -l test*			// 查看 test可执行文件和 test.c 的权限
-rwxr-xr-x 1 ding ding 8296 2月   8 23:49 test		// test文件可执行
-rw-r--r-- 1 ding ding  113 2月   8 23:43 test.c
ding@ding-ubuntu:~$ ./test 				// test 执行结果
hello world
// 修改权限:可读可写,不可执行
ding@ding-ubuntu:~$ chmod 664 test
ding@ding-ubuntu:~$ ls -l test*
-rw-rw-r-- 1 ding ding 8296 2月   8 23:49 test		// 权限改变
-rw-r--r-- 1 ding ding  113 2月   8 23:43 test.c
ding@ding-ubuntu:~$ ./test
bash: ./test: 权限不够					// 当前 test 文件因权限不够无法执行

修改文件所属用户,命令格式如下所示:

sudo chown 修改用户:修改组 文件

修改文件用户和组的测试:

ding@ding-ubuntu:~$ ls -l test		// test属于ding用户,所属组为ding
-rwxrwxr-- 1 ding ding 8296 2月   8 23:49 test
// 用户修改为ding,所属组不变
ding@ding-ubuntu:~$ sudo chown root:ding test	
[sudo] ding 的密码: 
ding@ding-ubuntu:~$ ls -l test
-rwxrwxr-- 1 root ding 8296 2月   8 23:49 test		// 用户成功变为root
ding@ding-ubuntu:~$ sudo chown ding:root test
// 用户变为ding,所属组变为root
ding@ding-ubuntu:~$ ls -l test
-rwxrwxr-- 1 ding root 8296 2月   8 23:49 test		// 权限结果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值