UID和GID简述

参考《现代操作系统》第三版

什么是UID和GID?

系统管理器授权每个进场使用一个给定的UID标识符(USER Ientification)。每个被启动的进程都有一个启动该进程的的用户UID。子进程拥有和父进程一样的UID。用户可以是某个组的成员,每个组也有一个GID标识。(Group Identification)


有什么用?

当一个进程的SETUID位打开,它的有效UID将变成相应可执行文件的所有者的UID,而不是当前使用该进程的用户的UID。当一个进程试图打开一个文件时,系统将检查它的有效UID,而不是真正的UID。(即临时拥有了和文件所有者一样的权限,有一点授权的味道)

//系统调用 setuid(uid) 设置UID


和chmod的区别

chmod:只有该文件的所有者和超级用户才有权利改变保护模式(rwx)。




/etc/passwd 文件是一个在 Unix 和 Linux 操作系统中非常重要的文件,它包含了每个用户账号的基本信息,包括用户名、加密过的密码哈希(通常以 * 或 x 表示不可见)、用户ID(UID)、主组ID(GID)、用户家目录以及登录shell路径。例如: ``` username:x:1000:500:John Doe:/home/username:/bin/bash ``` 这表示用户 "username" 的UID是1000,属于主组500,全名是 "John Doe",家目录位于 /home/username ,并且默认使用的shell是 /bin/bash。 /etc/group 文件则记录了系统中每个组的信息,每一行代表一个组,包含组名、组ID、以及一组成员列表,如: ``` groupname:x:500:user1,user2 ``` 这表示名为 "groupname" 的组,其GID是500,成员包括 user1 和 user2。 关于 `useradd ceo` 命令,它可以创建一个新的用户,如果ceo是用户名,则表示创建了一个新的管理员级别的账户。如果有其他选项(如 `-m` 创造新目录),则会进一步指定创建额外的属性。如果没有明确的用户名,`ceo`可能是指定的用户角色,如创建一个特定权限的角色账户。 `usermod` 命令用于修改已存在的用户账户信息。它的常用参数有: - `-u` 或 `--uid`:改变用户的UID - `-g` 或 `--gid`:更改用户所属的主组ID - `-d` 或 `--home`:设置用户的家目录 - `-l` 或 `--login-name`:更改用户的登录名称 - `-p` 或 `--password`:更改用户的密码 - `-s` 或 `--shell`:更新用户的默认Shell 例如,`usermod -u 1200 ceo` 将修改 "ceo" 用户的UID为1200。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值