linuxgid
1. linux的账户怎么修改自己的gid
直接编辑文件更改,从文件中找到你要更改的用户名。
vi/etc/passwd
vi/etc/group
通过运行usermod命令,可以将系统帐户 bin 的 UID 从 2 更改为 5089。请记住,bin 拥有的每个文件的所有权将为 2,原因是 AIX 不会自动将文件的所有权更改为用户的新 UID
2. linux系统组怎样更改gid
1、更改用户gid的命令是groupmod,使用groupmod修改组的gid。
2、使用chgrp命令修改原来用户文件和目录的属组。
3、修改对应用户所属的组的gid,保存。
3. linux 如何查看自己的uid和gid。
你可以通过查看/etc/passwd文件来确定自己的uid和gid
可以在终端敲
cat /etc/passwd | grep 你的用户名
会出现类似root:x:0:0:root:/root:/bin/bash的字样
那两个0就是uid和gid了.
4. 在linux中如何查看下一个GID或UID是多少呢
可用命令 id[选项]...[用户名] 查看
命令选项
-a 忽略,兼容其它版本
-Z, –context 只输出当前用户的安全上下文
-g, –group 只输出有效的GID
-G, –groups 输出所有的GID
-n, –name 对于 -ugG 输出名字而不是数值
-r, –real 对于 -ugG 输出真实ID而不是有效ID
-u, –user 只输出有效UID
–help 输出帮助后退出
–version 输出版本信息后退出
如:
#idroot
5. Linux用户权限管理命令
Linux系统中的用户是分角色的,用户的角色是由UID和GID来识别的(也就是说系统是识别的是用户的UID、GID,而非用户用户名),一个UID是唯一(系统中唯一如同身份证一样)用来标识系统的用户账号(用户名)。
文件的用户与用户组分为超级管理员,普通用户和系统用户。
1)超级管理员的UID=0,GID=0,也可以这么说系统只要是识别出某个用户的UIDGID都为0时,那么这个用户系统就认为是超级管理员。
2)普通用户(管理员添加的),默认它的UIDGID是从500-65535,权限很小,只能操作自己的家目录中文件及子目录(注:nobody它的UIDGID是65534)。
3)系统用户,也称虚拟用户,也就是安装系统时就默认存在的且不可登陆系统,它们的UIDGID是1-499。
我们可以通过cat /etc/passwd命令来查看所有的用户信息,例如下图,第三列是UID,第四列是GID:
创建用户
useradd user1 创建用户user1
useradd -e 12/30/2021 user2 创建用户user2,有效期到2021-12-30
设置用户密码
passwd user1 设置密码,有设置密码的用户不能用
这里设置密码时可能会碰到密码保护机制问题,这里需要注释掉保护机制的问题
这个时候需要在编辑/etc/pam.d/system-auth文件,将其中的password requisite
和password sufficient两行注释掉,如下图:
创建用户组
groupadd –g 888 users 创建一个组users,其GID为888
groupadd users 不用g参数,使用默认的组ID
命令 gpasswd为组添加用户
只有root和组管理员能够改变组的成员:
gpasswd –a user1 users 把 user1加入users组
gpasswd –d user1 users 把 user1退出users组
命令groupmod修改组
groupmod –n user2 user1 修改组名user1为user2
groupdel删除组
groupdel users 删除组users
真正从安全性角度上来考虑的话,是要控制用户一定执行命令的权限,也就是哪些用户可以执行哪些命令,不可以执行哪些命令,因此也就有了sudo这个应用,对于sudo提权,也就是修改/etc/sudoers的配置文件。
6. LINUX中GID和UID分别是什么啊
GID为GroupId,即组ID,用来标识用户组的唯一标识符UID为UserId,即用户ID,用来标识每个用户的唯一标示符扩展:用户组:将同一类用户设置为同一个组,如可将所有的系统管理员设置为admin组,便于分配权限,将某些重要的文件设置为所有admin组用户可以读写,这样可以进行权限分配。每个用户都有一个唯一的用户id,每个用户组都有一个唯一的组id
7. linux修改用户属组命令
Linux修改用户所属组
1、设置某个用户所在组
usermod -g 用户组 用户名
注:-g|--gid,修改用户的gid,该组一定存在
2、把用户添加进入某个组(s)
usermod -a -G 用户组 用户名
注:
-a|--append,把用户追加到某些组中,仅与-G选项一起使用
-G|--groups,把用户追加到某些组中,仅与-a选项一起使用
内容扩展
用户管理命令
useradd 注:添加用户
adser 注:添加用户
passwd 注:为用户设置密码
usermod 注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;
pwcov 注:同步用户从/etc/passwd 到/etc/shadow
pwck 注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;
pwunconv 注:是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件;
finger 注:查看用户信息工具
id 注:查看用户的UID、GID及所归属的用户组
chfn 注:更改用户信息工具
su 注:用户切换工具
sudo 注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;
visudo 注:visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers 的效果是一样的;
sudoedit 注:和sudo 功能差不多;
8. LINUX中GID和UID分别是什么啊
Linux系统中,每个用户的ID都有两种,即用户ID(User ID,简称UID)和组ID(Group
ID,简称GID),这与文件拥有者和拥有群组两种属性所对应。
文章开头也提到了,Linux系统并不认识我们的用户名和密码,那问题来了,文件是如何判别它的拥有者名称及群组名称的呢?
每个文件都有自己的拥有者ID和群组ID,在显示文件属性时,系统会根据/etc/passwd和/etc/group文件中的内容,分别找到UID和GID所对应的用户名和群组名,最终显示出来。
在/etc/passwd文件中,利用UID可以找到所对应的用户名,在/etc/group文件中,利用GID可以找到所对应的群组名。
可以做个小实验,在Linux操作系统中,常用的有两个账户,分别为root超级管理员账户和普通账户,我们可以先使用root账号登录并执行命令vim
/etc/passwd,在该文件中找到普通用户并将其UID随意改一个数字,这是你会发现,当你查看普通账户所拥有的文件时,你会发现所有文件的拥有者并不是普通用户,而是数字。
一般情况下,当登录Linux操作系统后,会先寻找/etc/passwd是否有输入账号,如果没有,则跳出,如果有,则读取对应的UID与GID,随后进入/etc/shadow核对密码,一切完成后,则进入shell管控。
由此可见,UID与GID在日常的账户管理中,发挥着非常重要的作用,因为一不小心就可能访问不了自己的文件,所以温馨提示大家,不要随便改动自己的/etc/passwd与/etc/group文件。
9. linux操作系统GID是什么,我如何查看GID
gid是linux系统的组号,用于区别组信息。通过此命令可以查看:ll(两个小写的L) 或者id username
10. Linux系统-文件系统&用户组管理-问题解答
1)ls
ls -l /home/ #显示home目录下文件或文件夹的包括访问权限、所属用户、所属主组、文件大小等信息, ls -l 也是别名ll的命令与选项部分。
ls -a /root #显示root目录下包括隐藏文件在内的所有文件
ls -d /etc/* #显示etc目录下所有子目录(不包括文件)
ls -S /root #按文件从大到小排列显示root目录下各文件
ls -Sr /root #按文件从小到大排列显示root目录下各文件
ls -U /root #按文件创建时间从新到旧排列显示root目录下各文件
ls -X /root #按文件后缀排序显示root目录下各文件
ls -R /root #递归显示root目录下所有文件
ls -t /root #按修改数据内容的时间(mtime)从新到旧排列显示root目录下各文件
2)touch
touch /data/file1 #在data目录下创建file1文件,如果目录下已经有同名文件,则不会覆盖同名文件
touch -t 201910200830.50 /etc/hosts #修改/etc/hosts文件的atime以及mtime的时间戳为2019年10月20日8点30分50秒
touch -c /data/f2 #刷新data目录下f2文件的atime、mtime、ctime,如果f2文件不存在,则不会创建f2
3)cp
cp etc/hosts /home/ #复制/etc/hosts文件到 /home目录下,如果home目录下没有hosts文件,则自动创建同名文件;如果有,则会直接覆盖。
cp -i etc/hosts /home/ #复制/etc/hosts文件到 /home目录下,如果home目录下没有hosts文件,则自动创建同名文件;如果有,则会询问用户是否覆盖。
cp -r /etc/ntp /root #复制/etc/ntp目录下所有子目录以及文件到root目录下
cp -a /home/* /data/ #复制/home/目录下所有子目录以及文件到data目录下,所有文件的类型、软链接、文件所属关系、时间戳等信息都一并复制(但是home目录下的隐藏文件不会被复制到data目录下)
cp -av /home/* /data/ #在实现cp -a /home/* /data/ 复制的基础上,在终端上显示复制过程
cp -u /etc/* /data/ #将etc目录下的文件复制到data目录下,如果etc目录的文件比data目录下的同名文件新,则覆盖data目录下的同名文件,如果etc目录下的文件比data目录里的与之同名文件旧,则不覆盖。
cp --backup=numbered etc/hosts /home/hosts #将etc目录下hosts文件复制到home目录下的hosts,在复制之前,会先对home目录的hosts文件进行备份,避免被覆盖后,原文件内容丢失。
4)mv
mv /etc/hosts /data/ #将etc目录下hosts文件转移到data目录下,如果data目录有同名文件,则直接覆盖
mv -i /etc/hosts /data/ #将etc目录下hosts文件转移到data目录下,如果data目录有同名文件,则询问是否覆盖
mv f1 f2 #将当前目录下的f1文件修改名字为f2
mv -t /data/ /etc/hosts #将etc目录下hosts文件转移到data目录下,如果data目录有同名文件,则直接覆盖 。功能实现上与mv /etc/hosts /data/ 相同,但是移出路径参数与移入路径参数的位置发生了互换
mv downloads/ D #将当前目录下的downloads目录的名字改成D
5)rm
rm /data/f1 #删除data目录下的f1文件
rm -r /data/* #递归删除data目录下的所有文件
rm -rf /data/* #强制递归删除data目录下的所有文件
6)file
file /etc/hosts #查看etc目录下hosts文件的文件类型,如文本文件、压缩文件、可执行程序等
7)stat
stat /data/f1 #查看/data/f1文件的三个时间,内容数据修改时间mtime,读取时间atime,元数据修改时间ctime
8)pwd
#在当前目录下输入pwd回车,查看当前所在目录路径
pwd -P #显示当前目录或文件夹的真实路径
9)cd
cd /data #进入data目录
cd ~root #进入root的家目录
cd - #回到刚才离开的目录
10)mkdir
mkdir /data/dir #在data目录下创建dir目录
mkdir -p /data/dir1/dir2/dir3/dir4 #在data目录下创建子目录dir1/dir2/dir3/dir4,若dir1、dir2、dir3都不存在,则递归创建
11)rmdir
rmdir /data/dir #删除data目录下的dir目录,如果dir里面有文件,则dir不能被删除
rmdir -p /data/dir1/dir2/dir3/dir4 #若dir1、dir2、dir3、dir4都是空目录,则递归删除data目录下的dir1、dir2、dir3、dir4目录
12)ln
ln /data/f1 /data/f2 #在data目录下创建文件f1的硬链接f2
ln -s f1 f1.link #在当前目录下创建文件f1的软链接f1.link
#当软链接路径与原文件路径不同时,如软链接位置是:/root/f1.link ,而原文件路径是:/data/f1 。 则在创建软链接时需要相对于软链接的路径,对原文件路径补完相对路径,具体如下:
ln -s ../data/f1 /root/f1.link
答:
1)创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b
mkdir /tmp/a{1,2}
touch /tmp/a1/{a,b}
2)在/tmp目录下创建目录:x_y, x_z, q_y, q_z
mkdir /tmp/{x,q}_{y,z}
答:文件的元数据信息包括:
文件类型: 指文件所属的类型,包括目录、文本文件、压缩文件、可执行程序等。系统实际上查看文件的头部信息,magic number。
节点编号: 每个文件、文件夹在同一个磁盘分区内,都有一个唯一的节点编号inode,用于识别磁盘分区内的文件。节点编号的数量在一个磁盘分区内是有限的,如果节点编号耗尽,无论磁盘空间是否真的占满,都会显示磁盘空间已满。
硬链接数: 是指指向该文件节点编号inode的文件名称数量。
所属用户UID: 创建该文件的用户的uid
所属主组GID: 创建该文件的用户的主组gid
文件大小: 表示该文件的磁盘空间占用大小
mtime时间戳: 指文件的内容数据发生修改时的时间点
atime时间戳: 指文件被访问时的时间点
ctime时间戳: 指文件的元数据发生变化时的时间点
访问权限: 指不同用户对文件的访问、修改、执行等操作的权限
指向磁盘数据块的直接指针: 直接指向磁盘数据块的指针,一个文件最多有12个直接指针,每个直接指针指向一个4k大小的数据块
指向磁盘数据块的间接指针: 间接指向磁盘数据块的指针,一个间接指针会先指向一个4k大小数据块作为次阶指针表,该数据块又分成1024个4字节大小的区间,一个区间存储一个次阶的指针,次阶指针指向一个4k的磁盘数据块存储真正的文件数据,若依然不能满足空间要求,则可继续嵌套次阶指针表,直到满足文件存储要求为止。
查看元数据信息方式:
1)ls -l /data #可查看data目录下非隐藏文件的访问权限、所属用户UID、所属用户主组GID、mtime时间戳、文件大小、硬链接数。
2)stat /root/bin #可查看root目录下bin目录的atime时间戳、mtime时间戳、ctime时间戳
3)ls -lc /root/ #查看root目录下非隐藏文件的ctime时间戳
4)ls -lu /root/ #查看root目录下非隐藏文件的atime时间戳
5)ls -i /root #查看root目录下所有非隐藏文件的节点编号
6)file /root/.bashrc #查看root目录下.bashrc文件的文件类型
修改文件的时间戳信息:
touch -t 201910200830.50 /etc/hosts #将etc目录下hosts文件的atime和mtime时间戳修改成2019年10月2日8时30分50秒
touch -a /etc/hosts #更新etc目录下hosts文件的atime和ctime为当前时间
touch -m /etc/hosts #更新etc目录下hosts文件的mtime和ctime为当前时间
答: touch /tmp/tfile-`date +"%F-%H-%M-%S"`
答:
mkdir /tmp/mytest1 #先创建mytest1目录
cp -a /etc/p*[^0-9] /tmp/mytest1/
或:
cp -a /etc/p*[^[:digit:]] /tmp/mytest1/
答:
useradd -u 5001 -md /tmp/tom -s /bin/zsh -G jack tom
1)useradd
useradd jack #创建用户jack,用户策略采用系统默认配置
useradd -u 1008 jack #创建用户jack,指定用户的UID为1008
useradd -d /data/jack jack #创建用户jack,指定用户家目录路径为/data/jack
useradd -g 1111 jack #创建用户jack,指定用户主组是GID=1111的组,但GID=1111的组需要事先存在,否则无法创建
useradd -G tom jack #创建用户jack,指定用户jack加入附加组tom,但tom组需要事先存在,否则无法创建
useradd -s /bin/zsh jack #创建用户jack,制定用户jack的shell类型是zsh
useradd -r jack #创建系统用户jack,系统用户默认不创建家目录
useradd -r -md /data/jack jack #配合-d选项,创建系统用户jack,指定该系统用户创建家目录/data/jack,并在家目录中载入默认配置文件
useradd -N jack #创建用户jack,不创建jack同名主组,将jack主组默认为users
useradd -M jack #创建用户jack,强制用户jack不创建家目录
2)usermod
usermod -G wang jack #将jack用户的附加组更改为wang,原有附加组删除
usermod -aG wang jack #在不退出原有附加组情况下,jack用户增加附加组wang
usermod -l jacky jack #修改用户名称为jacky
usermod -e 20181212 jack #将用户jack的账号过期日期修改为2018年12月12日
usermod -s /bin/csh jack #修改用户jack的shell类型为csh,与命令: chsh -s /bin/csh jack 相等
usermod -c 'abcdefg' jack #编辑用户jack的注释为abcdefg
3)userdel
userdel jack #删除用户jack
userdel -r jack #删除用户jack,包括用户的家目录、邮箱
4)groupadd
groupadd -g 1010 leo #创建组leo,指定GID为1010
groupadd -r leo #创建系统组leo
5)groupmod
groupmod -n lee leo #修改组leo名字为lee
groupmod -g 1111 leo #修改组leo的GID为1111
6)groupdel
groupdel wang #删除wang组,但是wang组必须不是任何用户的主组,否则不可以删除
7)su
su jack #当前用户非登录切换到jack账号,不读取jack账号配置文件
su - jack #当前用户登录切换到jack账号,读取jack账号配置文件
8)groupmems
groupmems -l -g root #查看所有属于root组的用户
9)id
id #查看当前用户的UID名称 、 主组名称GID 、 附属组名称GID
id root #查看root用户的UID名称、 主组名称GID 、附属组名称GID
id -u root #查看root用户的UID名称
id -g root #查看root用户的主组名称GID
id -G root #查看root用户的主组名称GID 、 附属组名称GID
id -nG root #只查看root用户的主组名称 、 附属组名称
10)chfn
chfn jack #编辑修改用户jack的注释 ,与命令:usermod -c 'abcdefg' jack 类似
11)chsh
chsh -s /bin/csh jack #修改用户jack的shell类型为csh
12)chage
chage jack # 交互式修改用户jack的密码策略,包括修改:密码创建时间、最小密码修改期、密码有效期、过期通知、过期宽限期、账户有效时间
chage -l jack #查看用户jack的密码策略
chage -d 0 jack #让用户jack密码期限立即过期,重新登录需要更换密码
13)passwd
passwd #修改当前用户的账号密码
passwd jack #修改jack账号密码 (仅限root账号)
passwd -e jack #强制jack用户下次登录修改密码 (仅限root账号)
echo hello | passwd --stdin jack #利用管道标准输入,快速将jack用户密码修改成hello,无需输入两次新密码,不检验密码的复杂度
14)newgrp
newgrp root #将当前用户的主组切换成root,原主组切换成附属组,如果当前用户的附属组没有root组,切换时需要输入root组密码;如果当前用户的附属组包含root组,则无需输入组密码,直接切换
15)gpasswd
gpasswd jack #创建jack组密码
gpasswd -a wang jack #将wang用户添加至jack组里
16)groups
groups jack #查看用户jack所属的组列表