精华内容
下载资源
问答
  • 也就是说,创作者可以提供免费的内容来吸引粉丝,这些粉丝可以随后订阅以经济方式支持创作者,并且作为回报,支持者可以访问创作者的高级内容和专有特权。 这样做,创作者从其支持者那里获得定期(例如,每月)的...
  • 知识简介 Linux系统根据用户文件权限将系统中所有用户分为:所有,同组用户,其他用户三类;并为这三类用户分别设定所需文件操作权限。 ——用户分类: ...字符串左数第一位(d)表...

    知识简介

    • Linux系统根据用户对文件的权限将系统中的所有用户分为:所有者,同组用户,其他用户三类;并为这三类用户分别设定所需的文件操作权限。

    ——用户分类:

    • “ u ”:——文件拥有者
    • “ g ”:——文件属组(文件归属的群组)
    • “ o ”:——其他用户

    注:当用户输入“ l l ”或者“ ls -l”命令查看文件信息时,可以看到如下信息:drwxrwxr-x ;字符串左数第一位(d)表示文件类型,除去第一位后的左三位表示拥有者的权限(rwx),中三位表示属组成员的权限,后三位表示其他用户的权限

    ——权限分类:

    • “ r ”:——读取权限
    • “ w ”:——写入权限
    • “ x ”:——执行权限
    • “ - ”:——空权限

    在这里插入图片描述

    文件属性管理

    • 我们可以使用“ chmod ”命令来对文件的各项权限进行修改。如:“chmod u+x 文件名 ”(也可以用二进制法代替“ u+x ")即可完成对拥有者用户执行权限的增加。

    注:二进制法即利用二进制形式表示权限,” 777 “即表示” rwxrwxrwx ",“ 421 ”即表示“ r—w---x ”

    • 还可以使用“ chgrp ”命令来更换文件的属组。如:“ chgrp -R 新属组 文件名“即可完成属组更改。

    文件权限管理

    针对文件的普通权限可以用chmod命令更改,实例如下:

    首先利用” chmod u+x file1 “命令为文件拥有者添加一个对文件file1的执行权限;然后输入” chmod 0664 file1 “命令用二进制法删除文件拥有者对文件file1的执行权限。

    liuyan@liuyan-virtual-machine:~/Desktop/Text/practice$ ls
    file1  file2  file3
    liuyan@liuyan-virtual-machine:~/Desktop/Text/practice$ ll -d file1
    -rw-rw-r-- 1 liuyan liuyan 0 2月  28 18:22 file1
    liuyan@liuyan-virtual-machine:~/Desktop/Text/practice$ sudo chmod u+x file1
    liuyan@liuyan-virtual-machine:~/Desktop/Text/practice$ ll -d file1
    -rwxrw-r-- 1 liuyan liuyan 0 2月  28 18:22 file1*
    liuyan@liuyan-virtual-machine:~/Desktop/Text/practice$ sudo chmod 0664 file1
    liuyan@liuyan-virtual-machine:~/Desktop/Text/practice$ ll -d file1
    -rw-rw-r-- 1 liuyan liuyan 0 2月  28 18:22 file1
    liuyan@liuyan-virtual-machine:~/Desktop/Text/practice$ 

    利用umask命令更改新建文件或目录的默认权限,实例如下:

    注:普通用户umask的值为0002,root用户umask的值为0022,可通过” umask -p 新umask值“更改umask的值。

    liuyan@liuyan-virtual-machine:~/Desktop/Text/practice$ umask
    0002
    liuyan@liuyan-virtual-machine:~/Desktop/Text/practice$ umask -p 0022
    liuyan@liuyan-virtual-machine:~/Desktop/Text/practice$ umask
    0022
    liuyan@liuyan-virtual-machine:~/Desktop/Text/practice$ 

    注:新建文件的权限为666-umask(即rw-rw-r–),新建目录的权限为777-umask(即rwxrwxr-x)

    Linux文件系统上的特殊权限
    为了更方便,高效以及安全的控制文件,Linux操作系统引入了一组特殊权限。
    suid 作用二进制文件所属者的身份运行
    suid借用文件拥有者(u)权限中的最后一位(x),并用s来表示;当文件拥有者具有执行权限(x)时且该文件拥有特殊权限suid,则用小写字母s来表示即rws,若无执行权限则用大写字母S表示

    sgid 作用目录新建文件集成父母的属组
    sgid借用文件群组权限(g)中的最后一位(x),并用s来表示

    sticky 作用目录此目录下谁创建仅创建者能删除
    sticky借用文件其他用户(o)权限中的最后一位(x),并用t来表示

    Linux下的访问控制权限

    对于访问控制权限主要涉及到针对不同用户以及不同属组的权限控制问题,实例如下:

    • 在某目录下创建的新文件自动属于g1组,组g2的成员如:alice能对这些新文件有读写权限,组g3的成员如:tom只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件夹。

    首先利用groupadd命令创建g1,g2组;创建用户tom,alice并把他们加入到相应的组里同时设置密码。然后进入到目标目录利用getfacl命令查看相关信息。再利用“ setfacl -Rm group:g1:rw- 目标文件"命令设置权限。

    root@liuyan-virtual-machine:/dev/TTT# groupadd g1
    root@liuyan-virtual-machine:/dev/TTT# groupadd g2
    root@liuyan-virtual-machine:/dev/TTT# useradd -G g1 -m alice
    root@liuyan-virtual-machine:/dev/TTT# useradd -G g2 -m tom
    root@liuyan-virtual-machine:/dev/TTT# passwd alice
    Enter new UNIX password: 
    Retype new UNIX password: 
    passwd: password updated successfully
    root@liuyan-virtual-machine:/dev/TTT# passwd tom
    Enter new UNIX password: 
    Retype new UNIX password: 
    passwd: password updated successfully
    root@liuyan-virtual-machine:/dev/TTT# mkdir ooo
    root@liuyan-virtual-machine:/dev/TTT#chmod g+s ./ooo
    root@liuyan-virtual-machine:/dev/TTT# ls
    ooo
    root@liuyan-virtual-machine:/dev/TTT# getfacl ooo
    # file: ooo
    # owner: root
    # group: root
    user::rwx
    group::r-x
    other::r-x
    
    root@liuyan-virtual-machine:/dev/TTT# setfacl -Rm group:g1:rw- ./ooo
    root@liuyan-virtual-machine:/dev/TTT# getfacl ooo
    # file: ooo
    # owner: root
    # group: root
    user::rwx
    group::r-x
    group:g1:rw-
    mask::rwx
    other::r-x
    

    这时,切换到alice用户,测试权限。

    alice@liuyan-virtual-machine:~$ cd /dev/TTT
    alice@liuyan-virtual-machine:/dev/TTT$ ls
    ooo
    alice@liuyan-virtual-machine:/dev/TTT$ cd ooo
    -su: cd: ooo: Permission denied
    alice@liuyan-virtual-machine:/dev/TTT$ 

    由于未分配该用户执行权限,导致无法访问该文件目录,需要再次利用setfacl命令添加执行权限。(注意该权限不可被继承)

    root@liuyan-virtual-machine:/dev/TTT# setfacl -m group:g1:rwx ./ooo
    

    再次登入alice用户,查看权限是否只正确,同时利用getfacl命令查看相关信息。

    alice@liuyan-virtual-machine:/dev/TTT$ cd ooo
    alice@liuyan-virtual-machine:/dev/TTT/ooo$ touch file1
    alice@liuyan-virtual-machine:/dev/TTT/ooo$ ls
    file1
    alice@liuyan-virtual-machine:/dev/TTT/ooo$ getfacl file1 
    # file: file1
    # owner: alice
    # group: alice
    user::rw-
    group::rw-
    group:g1:rw-
    mask::rw-
    other::r--
    alice@liuyan-virtual-machine:/dev/TTT/ooo$ 

    现在现需要更改tom用户的权限原理同上。

    root@liuyan-virtual-machine:/dev/TTT# setfacl -Rm user:tom:r-- ./ooo
    

    切换tom用户查看权限是否有误。

    alice@liuyan-virtual-machine:/dev/TTT/ooo$ su - tom
    Password: 
    tom@liuyan-virtual-machine:~$ cd /dev/TTT/
    tom@liuyan-virtual-machine:/dev/TTT$ ls
    ooo
    tom@liuyan-virtual-machine:/dev/TTT$ getfacl ./ooo/
    # file: ooo/
    # owner: root
    # group: root
    user::rwx
    user:tom:r--
    group::r-x
    group:g1:rwx
    mask::rwx
    other::r-x
    

    同样为tom用户添加执行权限。(不可被继承)

    root@liuyan-virtual-machine:/dev/TTT# setfacl -m user:tom:r-x ./ooo
    

    最后检查各用户的权限信息。

    tom@liuyan-virtual-machine:/dev/TTT$ cd ooo/
    tom@liuyan-virtual-machine:/dev/TTT/ooo$ ls
    file1
    tom@liuyan-virtual-machine:/dev/TTT/ooo$ touch file2
    touch: cannot touch 'file2': Permission denied
    • 备份某目录下所有文件的ACL权限到/root/acl.txt中,清除该目录中所有ACL权限,最后还原ACL权限。

    首先在目标目录创建文件,然后利用getfacl命令将acl信息写入到相关目录。

    root@liuyan-virtual-machine:/dev/TTT/ooo# touch file{1..3}
    root@liuyan-virtual-machine:/dev/TTT/ooo# ls
    file1  file2  file3
    root@liuyan-virtual-machine:/dev/TTT/ooo# cd ..
    root@liuyan-virtual-machine:/dev/TTT# getfacl -R ./ooo > ./ppp/acl.txt
    root@liuyan-virtual-machine:/dev/TTT# cd ppp
    root@liuyan-virtual-machine:/dev/TTT/ppp# ls
    acl.txt
    root@liuyan-virtual-machine:/dev/TTT/ppp# cat acl.txt 
    # file: ooo
    # owner: root
    # group: root
    user::rwx
    user:1002:r-x
    group::r-x
    group:g1:rwx
    mask::rwx
    other::r-x
    

    利用chmod命令更改某一文件的权限信息,同时输入setfacl --restore命令恢复被修改的权限信息

    root@liuyan-virtual-machine:/dev/TTT/ppp# cd ../ooo
    root@liuyan-virtual-machine:/dev/TTT/ooo# ls
    file1  file2  file3
    root@liuyan-virtual-machine:/dev/TTT/ooo# ll -d file1
    -rw-r--r-- 1 root root 0 2月  28 20:05 file1
    root@liuyan-virtual-machine:/dev/TTT/ooo# chmod 000 file1
    root@liuyan-virtual-machine:/dev/TTT/ooo# ll -d file1
    ---------- 1 root root 0 2月  28 20:05 file1
    root@liuyan-virtual-machine:/dev/TTT/ooo# cd ../
    root@liuyan-virtual-machine:/dev/TTT# setfacl --restore ./ppp/acl.txt
    root@liuyan-virtual-machine:/dev/TTT# cd ooo
    root@liuyan-virtual-machine:/dev/TTT/ooo# ll -d file1
    -rw-r--r-- 1 root root 0 2月  28 20:05 file1
    root@liuyan-virtual-machine:/dev/TTT/ooo# 
    
    展开全文
  • “Navicat”是一套可创建多...Navicat 功能足以符合专业开发人员所有需求,但是数据库服务器初学来说又相当容易学习。Navicat 用户界面 (GUI) 设计良好,让你以安全且简单方法创建、组织、访问和共享信息。
  • 文件管理者(二)

    2016-04-12 20:56:51
    iOS应用程序只能自己创建文件系统读取文件,这个独立、封闭、安全空间,叫做沙盒。它一般存放着程序包文件(可执行文件)、图片、音频、视频、plist文件、sqlite数据库以及其他文件。 每个应用程序都有自己...

    iOS开发-文件管理(二)

    一、iOS中的沙盒机制

    • iOS应用程序只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间,叫做沙盒。它一般存放着程序包文件(可执行文件)、图片、音频、视频、plist文件、sqlite数据库以及其他文件。

    • 每个应用程序都有自己的独立的存储空间(沙盒)

    • 一般来说应用程序之间是不可以互相访问

    模拟器沙盒的位置

    /User/userName/Library/Application Support/iPhone Simulator

    当我们创建应用程序时,在每个沙盒中含有三个文件,分别是Document、Library和temp。

    • Document:一般需要持久的数据都放在此目录中,可以在当中添加子文件夹,iTunes备份和恢复的时候,会包括此目录。

    • Library:设置程序的默认设置和其他状态信息

    • temp:创建临时文件的目录,当iOS设备重启时,文件会被自动清除


    获取沙盒目录

    • 获取程序的根目录(home)目录

    NSString *homePath = NSHomeDirectory()

    • 获取Document目录

    NSArray  *paths = NSSearchPathDorDirectoriesInDomains(NSDocumentDicrectory,, NSUserDomainMark, YES);                                                                           NSString *docPath = [paths lastObject];

    • 获取Library目录

    NSArray *paths = NSSearchPathForDirectoriseInDomains(NSLibraryDirectory, NSUserDomainMask, YES);                                                                                   NSString *docPath = [paths lastObject];   

    • 获取Library中的Cache

    NSArray *paths = NSSearchPathForDirectoriseInDomains(NSCachesDirectory, NSUserDomainMask, YES);                                                                                   NSString *docPath = [paths lastObject];

    • 获取temp路径

    NSString *temp = NSTemporaryDirectory( );


    二、NSString类路径的处理方法

    文件路径的处理

    NSString *path = @"/Uesrs/apple/testfile.txt"

    • 常用方法如下

    获得组成此路径的各个组成部分,结果:("/","User","apple","testfile.txt")

    - (NSArray *)pathComponents;

    提取路径的最后一个组成部分,结果:testfile.txt

    - (NSString *)lastPathComponent;

    删除路径的最后一个组成部分,结果:/Users/apple

    - (NSString *)stringByDeletingLastPathCpmponent;

    将path添加到先邮路径的末尾,结果:/Users/apple/testfile.txt/app.txt

    - (NSString *)stringByAppendingPathConmponent:(NSString *)str;

    去路径最后部分的扩展名,结果:text

    - (NSString *)pathExtension;

    删除路径最后部分的扩展名,结果:/Users/apple/testfile

    - (NSString *)stringByDeletingPathExtension;

    路径最后部分追加扩展名,结果:/User/apple/testfile.txt.jpg

    - (NSString *)stringByAppendingPathExtension:(NSString *)str;


    三、NSData

    • NSData是用来包装数据的

    • NSData存储的是二进制数据,屏蔽了数据之间的差异,文本、音频、图像等数据都可用NSData来存储

    NSData的用法

    1.NSString与NSData互相转换

    NSData-> NSString                                                                                     

    NSString *aString = [[NSString alloc] initWithData:adataencoding:NSUTF8StringEncoding];

    NSString->NSData                                                                                     

     NSString *aString = @"1234abcd";
    NSData *aData = [aString dataUsingEncoding: NSUTF8StringEncoding]; 

    将data类型的数据,转成UTF8的数据

    +(NSString *)dataToUTF8String:(NSData *)data
    {
    NSString *buf = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    return [buf autorelease];
    }

    将string转换为指定编码 
    +(NSString *)changeDataToEncodinString:(NSData *)data encodin:(NSStringEncoding )encodin{
        NSString *buf = [[[NSString alloc] initWithData:data encoding:encodin] autorelease];
        return buf;
    }

    2. NSData 与 UIImage
    NSData->UIImage
    UIImage *aimage = [UIImage imageWithData: imageData];
     
    //例:从本地文件沙盒中取图片并转换为NSData
    NSString *path = [[NSBundle mainBundle] bundlePath];
    NSString *name = [NSString stringWithFormat:@"ceshi.png"];
    NSString *finalPath = [path stringByAppendingPathComponent:name];
    NSData *imageData = [NSData dataWithContentsOfFile: finalPath];
    UIImage *aimage = [UIImage imageWithData: imageData];

    3.NSData与NSArray  NSDictionary

    +(NSString *)getLocalFilePath:(NSString *) fileName
    {
    return [NSString stringWithFormat:@"%@/%@%@", NSHomeDirectory(),@“Documents”,fileName];
    }

    包括将NSData写进Documents目录
    从Documents目录读取数据
    在进行网络数据通信的时候,经常会遇到NSData类型的数据。在该数据是dictionary结构的情况下,系统没有提供现成的转换成NSDictionary的方法,为此可以通过Category对NSDictionary进行扩展,以支持从NSData到NSDictionary的转换。声明和实现如下:

     
    + (NSDictionary *)dictionaryWithContentsOfData:(NSData *)data {     
        CFPropertyListRef list = CFPropertyListCreateFromXMLData(kCFAllocatorDefault, (CFDataRef)data, kCFPropertyListImmutable, NULL);
        if(list == nil) return nil; 
        if ([(id)list isKindOfClass:[NSDictionary class]]) { 
             return [(NSDictionary *)list autorelease]; 
            } 
        else { 
             CFRelease(list); 
             return nil; 
            } 
    }


    四、文件管理常用方法

    NSFileManager

    创建一个文件并写入数据                                                                                   

     - (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;

    从一个文件中读取数据                                                                                     

      - (NSData *)contentsAtPath:(NSString *)path;

    scrPath路径上的文件移动到dstPath路径上,注意这里的路径是文件路径而不是目录          

    - (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **) error;

    scrPath路径上的文件复制到dstPath路径上                                                            

    - (BOOL)copyItemAtPath:(NSString *)scrPath toPath:(NSString *)dstPath error:(NSError **) error;

    比较两个文件的内容是否一样                                                                               

    - (BOOL)contentsEqualAtPath:(NSString *)path1 andPath:(NSString *)path2;

    文件时候存在                                                                                                 

     - (BOOL)fileExistsAtPath:(NSString *)path;

    移除文件                                                                                                        

    - (BOOL)removeItemAtPath:(NSString *)path error:(NSError **) error;


    创建文件管理

    NSFileManager *fileManager = [NSFileManager defaultManager];                          

    NSString *path = [NSHomeDirectory( )stringByAppendingPathComponent:@"holyBible.txt"];                                                                                                     NSString *text = @"abcdefg"; 

    将字符串转成NSData类型                                                                                 

    NSData *data = [text dataUsingEncoding: NSUTF8StringEncoding]; 

    写入文件                                                                                                      

     BOOL success = [fileManager createFileAtPath:path contents:data attributes:nil];


    创建文件夹 

    NSString *filePath = [path stringByAppendingPathComponent:@"holyBible.txt"];     

    NSString *contect = @"abcdefg";                                                                     

    BOOL success = [fm createFileAtPath:filePath contents:[content dataUsingEncoding: NSUTF8StringEncoding] attributes:nil];


    NSFileManager-读取内容                                                                                 NSData *fileData = [fileManager contentsAtPath:filePath];                                   NSString *content = [[NSString alloc] initWithData:fileData dataUsingEncoding: NSUTF8StringEncoding];

    NSData-读取内容                                                                                          NSString *filePath = [path stringByAppendingPathComponent:@"holyBible.txt"];     NSData *data = [NSData dataWithContentOfFile:filePath];

    NSString-读取内容                                                                                         

    NSString *filePath = [path stringByAppendingPathComponent:@"holyBible.txt"];    

     NSString *content = [[NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];

    移动、复制文件                                                                                             

    移动文件(重命名)                                                                                         

    NSString *toPath = [NSHomeDirectory( ) stringByAppendingPathComponent:@"hellogod/NewTestament.txt"];                                                                             

     [fm createDirectoryAtPath:[toPath stringByDeletingLastPathComponent] withIntermediateDirectories:YES attributes:nil error:nil];                                                   NSError *error;                                                                                            

     BOOL isSuccess = [fm moveItemAtPath:filePath toPath:toPath error:&error];

    复制文件(重命名)                                                                                         NSString *copyPath = [NSHomeDirectory( ) stringByAppendingPathComponent:@"备份/Old Testament.txt"];                                                                                 

     [fm createDirectoryAtPath:[toPath stringByDeletingLastPathComponent] withIntermediateDirectories:YES attributes:nil error:nil];                                                   

    BOOL success = [fm copyItemAtPath:toPath toPath:toPath error:nil];


    删除文件、获取文件大小

    判断文件是否存在和删除文件                                                                               if([fm fileExistsAtPath])                                                                                     {                                                                                                                    if ([fm removeItemAtPath:copyPath])                                                                {                                                                                                                   NSLog(@"remove success");                                                                            }                                                                                                                  }

    获取文件大小                                                                                                  

    NSFileManager *fileManager = [NSFileManager defaultManager];                         获得文件的属性字典                                                                                        

     NSDictionary *attrDic = [fileManager attributesOfItemAtpath:sourcePath error:nil];  

    NSNumber *fileSize = [attrDic objectForKey:NSFileSize];   


    获取目录文件信息                                                                                            NSFileManager *fileManager = [NSFileManager defaultManager];                         NSString *enuPath = [NSHomeDirectoty( ) stringByAppendingPathComponent:@"Test"];                                                                                                           NSDictionaryEnumerator *dirEnum = [fileManager enumeratorAtPath:enuPath];     NSString *path = nil;                                                                                   

       while ((path = [dirEnum nextObject]} !=nil)                                                        {                                                                                                                  NSLog(@"%@",path);                                                                                        }



    展开全文
  •  每个文件或目录的访问权限都有三组,每组用三表示,分别表示文件属主的读、写、执行权限;与属主同组的用户的读、写和执行;系统中其他用户的读、写和执行权限。  当用ls -l显示文件或目录的详细信息时,最...

      文件或目录的访问权限分为只读,只写和可执行三种。

      文件所有者,同组胡勇、其他用户可对文件或目录进行访问。

      每一个文件或目录的访问权限都有三组,每组用三位表示,分别表示文件属主的读、写、执行权限;与属主同组的用户的读、写和执行;系统中其他用户的读、写和执行权限。

      当用ls -l显示文件或目录的详细信息时,最左边的一列为文件的访问权限。

      drwxrwxr-x 3 xixi xixi 4096  4月 16 08:56 test1
      drwxrwxr-x 2 xixi xixi 4096  4月 16 08:31 test2
      前面第一个字符表示文件类型, -表示普通文件,d表示目录文件 l表示符号链接 b块设备文件 c字符设备文件

      后面九个字符里,第一个颜色的三个字符代表文件主的权限,然后3个是组用户的权限,然后是其他用户的权限。

      确定了一个文件的访问权限后,用户可以利用linux系统提供的chmod命令来重新设定不同的访问权限,也可以利用chown命令来更改某个文件或目录的所有者。

      1.chmod

      该命令用来改变文件或目录的访问权限,用户可用其控制文件或目录的访问权限。该命令有两种方法,一种是包含字母和操作符表达式的文字设定法,另一种是包含数字的数字设定   法。

      1) 文字设定法

        chmod [who] [+|-|=] [mode] filename

        其中who可以是下述字母中任一个或者各字母的组合

    • u 表示user 文件或目录的所有者
    • g表示group 与文件属主有相同组ID的所有用户
    • o表示others
    • a表示所有用户,a为系统默认值

          +表示增加某个权限,-表示取消某个权限,=表示赋予给定权限并取消其他所有权限    

        设置mode可用下面任意组合

        r 可读,w 可写,x 可执行,其中只有目标文件对某些用户是可执行的或该目标文件是目录时,才追加x属性

        s在文件执行时把进程的属主或组ID设置为该文件的文件属主,方式“u+s”设置文件的用户ID位,“g+s”设置文件的组ID位

        t表示将程序的文本保存到交换设备上

        u表示与文件属主拥有一样的权限

        g表示与和文件属主同组的用户拥有一样的权限

        o表示与其他用户拥有一样的权限

        例如:

          chmod ug+x, o-x text 表示设定文件text的属性:文件属主增加写权限,同组用户增加写权限,其他用户删除执行权限

          chmod u+s sniffer 表示对可执行文件增加s权限,使得执行该文件的用户暂时具有该文件拥有者的权限。

      2)用数字来表示权限

        chmod [mode] filename

        0表示没有权限,1表示x权限,2表示w权限 4表示r权限

        三组(用户,同组,其他用户),每组三个二进制数字 111表示 rwx ,111=7所以7表示rwx

        例如:

         设定文件mm.txt的属性如下:

         文件属主拥有读写权限;同组人用户拥有读权限;其他人拥有读权限

           chmod 644 mm.txt

      2. 更改文件/目录的默认权限-----umask

        umask用于显示和设置用户创建的默认权限,umask设置的是权限的补码,而chmod设置的是文件权限码,对于文件来说,系统不允许创建之初就对其富裕可执行权限,因此文件权限的最高设定值为6,目录为7。

        将最高可选值减去umask中的值即得到默认文件创建权限,当umsk码为022时,默认创建文件的权限为644 (即666-022);默认创建目录的权限为755 (777-022)

      3. 更改文件/目录的所有权-----chown

        chown用来更改某个文件或目录的属主和属组。

        例如:用户root把自己的一个文件复制给用户xu,为了让用户能够存取这个文件,root用户应该把这个文件的属主设置为xu,否则xu无法存取这个文件。

        chown [option] [user|group] filename

        user可以是用户名也可以是用户id,group也如此。

        选项-R递归的改变指定目录及其下面的所有子目录和文件的拥有者。

        选项-v 显示chown命令所做的工作。

        例子:

          chown wang shiyan.c

          chown -R wang.users /his 表示把目录/his及其下面的所有文件和子目录的属主改为wang 属组改为users      

    转载于:https://www.cnblogs.com/happyxixi/p/5401197.html

    展开全文
  • 在Linux系统中,用户对一个文件或目录具有访问限制,这些访问权限决定了谁能访问。通过设置权限可以限制或允许以下三种用户访问:文件用户所有(属主)、文件组群所有、系统其他用户。 每一位用户都有对文件或...

    权限、所有者和ACL

    文件和目录权限说明

    在Linux系统中,用户对一个文件或目录具有访问限制,这些访问权限决定了谁能访问。通过设置权限可以限制或允许以下三种用户访问:文件的用户所有者(属主)、文件的组群所有者、系统其他用户。
    每一位用户都有对文件或目录的读取、写入和执行权限。

    • r(读取):文件:具有读取文件内容权限;目录:具有浏览目录权限
    • w(写入):文件:具有新增、修改文件内容的权限;目录:具有删除、移动目录的权限
    • x(执行):文件:具有执行文件的权限;目录:具有进入目录的权限

    例:
    -rwx–r--:用户所有者具有读取、写入和执行,其他用户具有读取权限
    -rw-rw-r-x:用户所有者和组群所有者具有读取、写入权限,其他用户只具有读取和执行权限。

    文字设定法设置权限-不常用

    chmod [操作对象] [操作符号] [权限] [文件|目录]
    操作对象:u:用户所有者、g:组群所有者、o:其他用户、a:标示所有用户
    操作符号:+:添加权限、-:取消权限、=:赋予给定权限
    权限:r、w、x
    
    eg:
    chmod u+w ah #添加用户所有者对ah文件的写入权限
    

    数字设定法设置权限

    r:对应的数值4
    w:对应的数值2
    x:对应的数值1
    -:对应的数值0
    eg:
    -rwx------:700
    -rwxr--r--:744
    eg:
    chmod 700 1.txt
    chomd 470 2.txt
    chmod -R 700 /home/user #递归修改
    

    设置文件和目录特殊权限

    在Linux系统中,除了基本权限外,还有三个特殊的权限,分别是SUID、SGID和Sticky。

    • SUID:对一个可执行文件,不是以发起者身份来获取资源,而是以可执行文件的用户所有者来执行。
    • SGID:对一个可执行文件,不是以发起者身份来获取资源,而是以可执行文件的组群所有者来执行。
      -Sticky:对文件和目录设置Sticky之后,尽管其它用户有写权限,也必须由文件所有者执行删除和移动等操作。
    如果要设置特殊权限,就必须要用四位数字才能表示。
    SUID:4
    SGID:2
    Sticky:1
    chmod 4000 ah #设置文件ah具有SUID权限
    chmod 2000 ah #设置文件ah具有SGID权限
    

    更改用户和组群所有者

    chown [选项] [用户.组群] [文件|目录]
    -R:递归修改
    chown root1 ah #将文件ah的用户所有者改成root1
    chown :root1 ah #将文件ah的组群改成root1组群
    chown root1.root1 ah #所有者和组群一起改
    

    权限掩码

    为了保护文件和目录,可以使用umask命令设置权限掩码, 以取消用户创建文件和目录的默认权限设置(rw),指定掩码在登录系统后一直有效,如果将此命令放入/etc/profile文件,就可以控制用户后续所建文件的权限,umask告诉Linux系统在创建文件或目录时将不设置什么权限,与chmod命令的效果刚好相反。

    umask [选项] [模式]
    umask 444 #设置权限掩码为444,那么创建文件或目录后的权限就是--w--w--w-。
    

    ACL控制

    随着应用的发展,传统的Linux文件系统的权限控制已不能适应现在复杂的控制需求。ACL(访问控制列表)是一个文件或目录的访问控制列表,可以针对任意指定的用户和组群分配任何权限,只有root用户才能创建ACL。

    ACL有两种类型:一是存取ACL,针对文件和目录设置访问控制列表。另外一种就是默认ACL,只能针对目录设置访问控制列表。

    查看ACL:getfacl命令
    getfacl -l /opt/ta
    
    设置ACL:setfacl命令
    setfacl -m u:root1:rwx /opt/ta #为用户root1设置ACL,使其对opt/ta文件具有rwx权限
    
    展开全文
  • Linux SUID位的作用

    2017-08-23 09:24:32
    Linux是个多用户多任务的操作系统,身为个优秀安全的多用户操作系统,linux用户之间资源的访问权限管理得十分严谨。 linux每个文件和目录都有组访问权限标志,用9个二进制表示: 如用ls -l显示/etc/...
  • 更改目录或文件访问权限的命令 Linux中的访问权限 在Linux中目录访问的用户分为三种目录属主u表示目录属主所在组的用户g表示其他用户o表示文件访问有三种不同类型的用户文件所有同组用户其他用户目录或文件的...
  • 89参与(从1到10评分)新站点(第二调查表)访问性进行了测试。CMPDI新站点(http://cmpdi.uff.br/)批准率超过80%。 通过第二份问卷调查表要求新工具也已添加到新站点。 因此,该研究实现了其...
  • 6.8 控制成员的访问 6.9 访问函数与工具函数 6.10 初始化类对象:构造函数 6.11 在构造函数中使用默认参数 6.12 使用析构函数 6.13 何时调用构造函数与析构函数 6.14 使用数据成员和成员函数 6.15 微妙的...
  • 6.8 控制成员的访问 6.9 访问函数与工具函数 6.10 初始化类对象:构造函数 6.11 在构造函数中使用默认参数 6.12 使用析构函数 6.13 何时调用构造函数与析构函数 6.14 使用数据成员和成员函数 6.15 微妙的...
  • 在 32- x86 系统上,每个进程可以访问 4 GB 内存。现在,大部分人系统上并没有 4 GB 内存,即使您将 swap 也算上,每个进程所使用内存也肯定少于 4 GB。因此,当加载个进程时,它会得到个取决于某个...
  • 访问控制模型

    2013-06-02 16:30:50
    在防御***时种最佳的方式是将防御摆在首。我们通过严格的方式设置谁有权访问那种信息块,就能...题目中提到的访问控制矩阵就是种控制模型,下边访问控制模型做一下介绍; 访问控制矩阵:它是定义权限的表,表...
  • 权限管理rwx

    2021-04-04 22:05:16
    权限管理rwx.普通权限rwx1.rwx文件影响①r文件影响②w文件影响③x文件影响2.图解常见操作权限二.高级权限1.在Linux系统中有哪些高级权限① 冒险(特殊)(u + s) => S② 强制(g + s)...
  • 有调查公司珠江三角洲地区101企业家进行了次深入电话访问,被访对象中85%以上为企业最高层管理者(董事长、总裁、总经理)。调查表明,企业高层管理者每周工作时间超过60小时,相当于周只休息1天,每天...
  • 作为计算机应用的一部分,使用计算机学生住宿信息进行管理,具有着手工管理所无法比拟优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高销售 管理的效率,也...
  • 1、有用户问如何能让使用,去除周期内只能进行次抢位的操作,变为无限制,这个我进行一下解答。请打开appslootLibActionIndexAction.class.php 文件,注释或者删除 58-66行代码,即可!!(该功能已经融入到后台...
  • 在 Linux 系统中,为了保证文件的安全,文件所有、同组用户、其他用户的访问权限进行了分别管理。其中,文件所有,即建立文件或目录的用户。同组用户,是所属组群中的所有用户。其他用户,指的是既不是文件...
  • ZooKeeper(六)权限管理机制

    千次阅读 2018-09-05 16:47:17
    一、ZooKeeper权限管理...ACL实现和Unix文件访问许可非常相似:它使用许可对一个节点不同操作进行允许或禁止权 限控制。但是和标准Unix许可不同是,Zookeeper对于用户类别区分,不止局限于所有(ow...
  • 参加可以表达会议兴趣 协作推荐引擎,用于根据兴趣相似度推荐会议 自动调度算法,使用模拟退火来最小化演示重叠和最大化与会出席偏好 移动优化时间表显示 时间表iCalendar资讯提供 用于编辑会话的管理...
  • 特点功能:  1....完善的广告访问记录,可显示广告浏览者、点击者的IP地址   11.当有大量广告条存在时,可通过多种条件查询广告条以其进行操作  系统默认超级管理员名:admin  管理密码:admin
  • 1.改进了广告智能轮换算法,广告既在所有浏览者中循环展示,也在每个访问者的访问中循环展现; 2.增加了广告来源方式,既可为广告联盟的广告(Ver1.0.0版本已实现),又可上传自定义图片(新增功能)。 3.更新IP...
  • java笔试题算法Python 中开源点点互联网电话 ...互联网电话可以是对等架构的一种应用,参与可以在其中相互定位和通信,而无需依赖昂贵或受管理的服务提供商。 该项目试图提供基于开放标准开源点点软件。
  • 混凝土搅拌站信息管理系统

    热门讨论 2009-11-26 16:42:27
    建科商砼搅拌信息管理系统(以下简称:“建科商砼” )是适用于混凝土搅拌企业的一款综合管理系统,企业生产中重要环节实现了信息化、自动化管理,大大提高了经营在企业管理过程中决策实时性和准确性,从而...
  • 停车位管理 记录车位基本信息(车位编号) 记录车位使用情况(租或买),费用等信息。 6. 服务管理 主要模块有社区活动管理、客户投诉管理、报修管理、信箱管理。 7. 资产设备管理 公共设备管理,比如电梯...
  • 文章管理系统

    2014-12-06 10:19:22
    9.节日倒计时改为写文件方式保存缓存文件,以便无法访问外部空间也可以正常使用该功能 10.整合12.4日补丁 2011年12月4日 bug修复 1.改进采集栏目中过滤标签进行注释 2.采集过程中,加入 采集标题 去HTML化...
  • 图书的信息需要数据库,读者的信息管理需要数据库,管理者的操作需要数据库等。 首先,要想制作图书管理必须要有数据库,然后在数据进行相关的数据操作, 例如:个读者要想借本书,首先管理员要读者信息...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 778
精华内容 311
关键字:

对一位管理者的访问