2016-09-26 00:06:38 u014484863 阅读数 574

Linux修改文件用户和用户组

(一)基础知识

在Linux中,创建一个文件时,该文件拥有者都是创建该文件的用户。该文件用户可以修改文件的拥有者及其用户组,当然root用户可以修改任何文件的拥有者以及用户组。在Linux中,对于文件的权限(rwx)分为三个部分,第一部分是该文件的拥有者所拥有的权限,第二部分是该文件所在用户组的用户所拥有的权限,第三部分是其他用户所拥有的权限。对于文件的权限可以参考《Linux的chmod命令》。在 shell 中,可以使用chown命令来改变文件所有者及用户组,chgrp命令来改变文件所在用户组。在 Linux的C程序中,可以使用chown函数来改变文件所有者,及所在用户组。
另外,在shell中,要修改文件当前的用户必须具有管理员root的权限。可以通过su命令切换到root用户,也可以通过sudo获得root的权限。

(二)使用chown命令更改文件拥有者

在 shell 中,可以使用chown命令来改变文件所有者。chown命令是change owner(改变拥有者)的缩写。需要要注意的是,用户必须是已经存在系统中的,也就是只能改变为在 /etc/passwd这个文件中有记录的用户名称才可以。
chown命令的用途很多,还可以顺便直接修改用户组的名称。此外,如果要连目录下的所有子目录或文件同时更改文件拥有者的话,直接加上 -R的参数即可。

基本语法:

chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:用户组名称 文件或目录

参数:

-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录
都更新成为这个用户组。常常用在更改某一目录的情况。

示例1:

[root@localhost home]# touch testfile //由 root 用户创建文件 

[root@localhost home]# ls testfile –l 
-rw--w--w- 1 root root 0 Jun 7 19:35 testfile //文件的拥有者及拥有者级均为 root 

[root@localhost home]# chown yangzongde testfile //修改文件拥有者为 yangzongde 

[root@localhost home]# ls testfile -l 
-rw--w--w- 1 yangzongde root 0 Jun 7 19:35 testfile //查看文件拥有者为 yangzongde,但组仍为 root 

示例2:

chown bin install.log
ls -l
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log
chown root:root install.log
ls -l
-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log

(三)使用chgrp命令更改文件所属用户组

在shell中,可以使用chgrp命令来改变文件所属用户组,该命令就是change group(改变用户组)的缩写。需要注意的是要改变成为的用户组名称,必须在 /etc/group里存在,否则就会显示错误。

基本语法:

chgrp [-R] 用户组名称 dirname/filename ...

参数:

-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录
都更新成为这个用户组。常常用在更改某一目录的情况。

示例3:

[root@localhost home]# ls testfile -l 
-rw--w--w- 1 yangzongde root 0 Jun 7 19:35 testfile //查看文件拥有者为 yangzongde,但组为 root 
[root@localhost home]# chgrp yangzongde testfile //修改拥有者组为 yangzongde 
[root@localhost home]# ls testfile -l 
-rw--w--w- 1 yangzongde yangzongde 0 Jun 7 19:35 testfile 
[root@localhost home]# chown root:root testfile // 使用 chown 一次性修改拥有者及组 
[root@localhost home]# ls testfile -l 
-rw--w--w- 1 root root 0 Jun 7 19:35 testfile 

示例4:

[root@linux ~]# chgrp users install.log
[root@linux ~]# ls -l
-rw-r--r--  1 root users 68495 Jun 25 08:53 install.log

示例5:

//更改为一个 /etc/group里不存在的用户组
[root@linux ~]# chgrp testing install.log
//chgrp: invalid group name `testing' <== 出现错误信息~找不到这个用户组名~

(四)chown函数使用

在Linux 的C 应用编程中,可以使用 chown 函数来修改文件的拥有者及拥有者组。此函数声明如下:
/usr/include/unistd.h文件中

/* Change the owner and group of FILE. */ 
extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)__THROW __nonnull ((1)) __wur; 

此函数的第一个参数为欲修改用户的文件,第二个参数为修改后的文件拥有者,第三个参数为修改后该文件拥有者所在的组。

对于已打开的文件,使用 fchown 函数来修改。其第一个参数为已打开文件的文件描述符,其他同 chown 函数。该函数声明如下:

/* Change the owner and group of the file that FD is open on. */ 
extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __THROW __wur; 

对于连接文件,则可以使用 lchown 函数。其参数同于 chown 函数。

/* Change owner and group of FILE, if it is a symbolic link the ownership of the symbolic 
link is changed. */ 
extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group) __THROW __nonnull ((1)) __wur; 

以上这3个函数如果执行成功,将返回0,否则返回-1.

2019-06-28 17:02:37 cccfire 阅读数 3481

用法:chown 【选项】 用户【:用户组】 file
   
将test.java 文件所属的用户设置成 yangyuanliang
chown yangyuanliang test.php
     

将test.java 文件的所属用户设置成yangyuanliang,所属用户组设置成staff   
chown yangyuanliang:staff test.php

 
将test 及其内部文件所属用户设置成yangyuanliang,所属用户组设置成staff
chown -R yangyuanliang:staff  test/

2015-05-18 14:28:30 zhangzhikaixinya 阅读数 531

[转载]Linux更改文件文件夹所属用户组(chgrp)

更改所属用户组, chgrp

改变文件的用户组很简单,直接用chgrp即可,这个命令就是change group(改变用户组)的缩写。这样就很好记了。不过,请记住,要改变成为的用户组名称,必须在 /etc/group里存在,否则就会显示错误。

假设以root的身份登入FC4,那么,在你的家目录内有一个install.log文件,如何改变该文件的用户组呢?假设你已经知道在 /etc/group里已经存在一个名为users的用户组,但是,testing这个用户组名字就不存在 /etc/group中了,此时改变用户组成为users与testing,会有什么现象发生呢?

[root@linux ~]# chgrp [-R] dirname/filename ...

参数:

-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录

都更新成为这个用户组。常常用在更改某一目录的情况。

范例:

[root@linux ~]# chgrp users install.log

[root@linux ~]# ls -l

-rw-r--r--  1 root users 68495 Jun 25 08:53 install.log

[root@linux ~]# chgrp testing install.log

chgrp: invalid group name `testing' <== 出现错误信息~找不到这个用户组名~
发现了吗?文件的用户组被改成users了,但要改成testing的时候,就会发生错误。注意,出现错误信息,还是要查查错误信息的内容才好。

更改文件拥有者, chown

那么,如何改变一个文件的拥有者呢?很简单。既然改变用户组是change group,那么改变拥有者就是change owner(改变拥有者)。这就是chown这个命令的用途,要注意的是,用户必须是已经存在系统中的,也就是在 /etc/passwd这个文件中有记录的用户名称才可改变。

chown的用途很多,还可以顺便直接修改用户组的名称。此外,如果要连目录下的所有子目录或文件同时更改文件拥有者的话,直接加上 -R的参数即可。我们来看看语法与范例:

[root@linux ~]# chown [-R] 账号名称 文件或目录

[root@linux ~]# chown [-R] 账号名称:用户组名称 文件或目录

参数:

-R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录

都更新成为这个用户组。常常用在更改某一目录的情况。

范例:

[root@linux ~]# chown bin install.log

[root@linux ~]# ls -l

-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log

[root@linux ~]# chown root:root install.log

[root@linux ~]# ls -l

-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log    
 
我们知道如何改变文件的用户组与拥有者了,那么,什么时候要使用chown或chgrp呢?或许你会觉得奇怪吧?是的,确实有时候需要更改文件的拥有者的,最常见的例子就是在复制文件给其他人时,我们使用最简单的cp来说明好了:

[root@linux ~]# cp 来源文件 目的文件  
假设今天要将 .bashrc文件复制成为 .bashrc_test,且是要给bin这个人,你可以这样做: 
[root@linux ~]# cp .bashrc .bashrc_test

[root@linux ~]# ls -al .bashrc*

-rw-r--r--  1 root root 395 Jul  4 11:45 .bashrc

-rw-r--r--  1 root root 395 Jul 13 11:31 .bashrc_test
怎么办?.bashrc_test还是属于root所有,如此一来,即使将文件拿给bin用户了,他仍然无法修改(看属性就知道了),所以就必须修改这个文件的拥有者与用户组。
2016-03-16 15:27:36 qq_28090573 阅读数 453

使用chown命令可以修改文件或目录所属的用户:

       命令:chown 用户 目录或文件名

       例如:chown qq /home/qq  (把home目录下的qq目录的拥有者改为qq用户) 

使用chgrp命令可以修改文件或目录所属的组:

       命令:chgrp 组 目录或文件名

       例如:chgrp qq /home/qq  (把home目录下的qq目录的所属组改为qq组)

2018-08-26 20:33:58 qq_15076569 阅读数 1848

1.linux的用户和组概念图:

一个用户至少有一个组

2.添加用户:

基本语法

useradd [选项] 用户名 

useradd -d /home/dog dog --创建dog用户在指定目录文件夹下创建 

useradd -g 用户组名 用户名 --创建用户时指定用户所属组 

usermod -g 用户组名 用户名 --修改用户所属组

实际案例,添加一个小明用户:

useradd xm --这里创建了xm用户未指定xm属于哪个组,linux会自动创建一个叫xm的组,并且把xm用户添加到xm的这个组里

使用passwd xm来指定xm用户的密码:

3.删除用户(删除用户一般保留用户的家目录)

userdel xm      --删除xm这个用户,但会保留xm的家目录

userdel -r xh    --删除xh这个用户,同时删除xh的家目录

4.查询用户信息

语法:id 用户名

5.切换用户

语法:su - 用户名

说明:高权限用户切到低权限用户不需要输入密码,反之需要输入密码;当用户切换到另一个用户的时候可使用exit返回到原来用户

6.查看当前登录用户

语法:who a mi 或者 whoami

7.用户组(类似于角色,系统可以对有共性的多个用户进行统一管理)

7.1新增组

     语法:groupadd 组名

7.2删除组

     语法:groupdel 组名

8.用户和组的相关文件

vim /etc/passwd

 

vim /etc/group --实际上看不见组内的用户

cat /etc/passwd 查看用户列表

cat /etc/group  查看用户组列表

没有更多推荐了,返回首页