C#修改文件或文件夹的权限,为指定用户、用户组添加完全控制权限

写在前面

在windows系统中,c盘中的目录权限比较高,有时制作安装包的时候,默认的安装路径就是在c盘,但对运行可执行文件,有时候需要为其添加完全控制权限,或者读写权限。这里将当时的解决方案记录一下。

代码实现

在C盘添加一个文件夹,并在文件夹内部,新建一个文本文件,如图所示:

该文件夹下,新建一个文本文件,如图所示:

为文件添加完全控制权限:

        /// <summary>
        /// 为文件添加users,everyone用户组的完全控制权限
        /// </summary>
        /// <param name="filePath"></param>
        static void AddSecurityControll2File(string filePath)
        {

            //获取文件信息
            FileInfo fileInfo = new FileInfo(filePath);
            //获得该文件的访问权限
            System.Security.AccessControl.FileSecurity fileSecurity = fileInfo.GetAccessControl();
            //添加ereryone用户组的访问权限规则 完全控制权限
            fileSecurity.AddAccessRule(new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, AccessControlType.Allow));
            //添加Users用户组的访问权限规则 完全控制权限
            fileSecurity.AddAccessRule(new FileSystemAccessRule("Users", FileSystemRights.FullControl, AccessControlType.Allow));
            //设置访问权限
            fileInfo.SetAccessControl(fileSecurity);
        }

为文件夹添加完全控制权限

        /// <summary>
        ///为文件夹添加users,everyone用户组的完全控制权限
        /// </summary>
        /// <param name="dirPath"></param>
        static void AddSecurityControll2Folder(string dirPath)
        {
            //获取文件夹信息
            DirectoryInfo dir = new DirectoryInfo(dirPath);
            //获得该文件夹的所有访问权限
            System.Security.AccessControl.DirectorySecurity dirSecurity = dir.GetAccessControl(AccessControlSections.All);
            //设定文件ACL继承
            InheritanceFlags inherits = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit;
            //添加ereryone用户组的访问权限规则 完全控制权限
            FileSystemAccessRule everyoneFileSystemAccessRule = new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, inherits, PropagationFlags.None, AccessControlType.Allow);
            //添加Users用户组的访问权限规则 完全控制权限
            FileSystemAccessRule usersFileSystemAccessRule = new FileSystemAccessRule("Users", FileSystemRights.FullControl, inherits, PropagationFlags.None, AccessControlType.Allow);
            bool isModified = false;
            dirSecurity.ModifyAccessRule(AccessControlModification.Add, everyoneFileSystemAccessRule, out isModified);
            dirSecurity.ModifyAccessRule(AccessControlModification.Add, usersFileSystemAccessRule, out isModified);
            //设置访问权限
            dir.SetAccessControl(dirSecurity);
        }

总结

在操作文件的时候,还是比较简单的,不过文件夹就比较复杂了,牵扯到是否要继承的问题。

博客地址: http://www.cnblogs.com/wolf-sun/
博客版权: 本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。
如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步!
再次感谢您耐心的读完本篇文章。http://www.cnblogs.com/wolf-sun/p/4591734.html
时间: 2024-10-17 00:15:43

C#修改文件或文件夹的权限,为指定用户、用户组添加完全控制权限的相关文章

linux 用户/用户组添加修改删除(ubuntu/centos)

作者:凨 一.LINUX(UBUNTU/CENTOS)用户添加删除修改 1.建用户: adduser web //新建web用户 useradd web #添加web 用户 passwd web //给web用户设置密码 useradd web -g admin -n -m //新建web用户并指定用户组为 admin用户组,并自动建立登录目录 passwd web //给web 用户设置密码 useradd(选项)(参数) -c<备注>:加上备注文字.备注文字会保存在passwd的备注栏位中

关于Linux系统中文件及文件夹权限笔记

linux 基础知识,Linux 文件及文件夹权限,不要动不动就 777 权限.网上教程过于复杂??拢?虻プ芙崛缦?.. 一.查看 Linux 文件权限 ls -l (通用) ll (Ubuntu适用,等于ls -al) 二.权限标示符 r(读).w(写).x(执行) 4(读).2(写).1(执行) 下面举例说明: -rwx------: 文件所有者对文件具有读取.写入和执行的权限. -rwxr?r--: 文件所有者具有读.写与执行的权限,其他用户则具有读取的权限. -rw-rw-r-x: 文件

如何只授予用户查看存储过程定义的权限

有个网友问我,如何授予某个用户只能查看某些存储过程的定义权限,而不能让用户去修改.执行存储过程.看似简单的问题,却因为从没有碰到这样的需求.花了点时间才梳理.总结清楚. 关于ORACLE账号的权限问题,一般分为两种权限:                  系统权限: 允许用户执行特定的数据库动作,如创建表.创建索引.创建存储过程等       对象权限: 允许用户操纵一些特定的对象,如读取视图,可更新某些列.执行存储过程等 像这种查看存储过程定义的权限为对象权限,但是我们还是首先来看看关于存储过

如何实现只授予用户查看存储过程定义的权限_oracle

有个网友问我,如何授予某个用户只能查看某些存储过程的定义权限,而不能让用户去修改.执行存储过程.看似简单的问题,却因为从没有碰到这样的需求.花了点时间才梳理.总结清楚. 关于ORACLE账号的权限问题,一般分为两种权限: 系统权限: 允许用户执行特定的数据库动作,如创建表.创建索引.创建存储过程等 对象权限: 允许用户操纵一些特定的对象,如读取视图,可更新某些列.执行存储过程等 像这种查看存储过程定义的权限为对象权限,但是我们还是首先来看看关于存储过程的系统权限吧: PRIVILEGE NAME

如何在Windows7中批量修改文件和文件夹的权限

  很多人在使用 Windows 7 专业版/企业版或旗舰版的时候会发现这样一个问题:如果希望对多个文件夹或文件设置权限,在选中这些文件夹和文件之后,点击鼠标右键,选择"属性",在"属性"对话框中只有"常规"和"自定义"两个选项卡,没有在之前版本的 Windows 中常见的安全选项卡.因此无法对这些文件夹或文件批量的进行权限修改. 操作步骤: 在选择多个文件或文件夹之后,属性对话框中没有"安全"选项卡,是设

Linux chmod命令修改文件与文件夹权限方法

语法:chmod [who] [+ | - | =] [mode] 文件名 命令中各选项的含义为 u 表示"用户(user)",即文件或目录的所有者. g 表示"同组(group)用户",即与文件属主有相同组ID的所有用户. o 表示"其他(others)用户". a 表示"所有(all)用户".它是系统默认值. 操作符号可以是: + 添加某个权限. - 取消某个权限. = 赋予给定权限并取消其他所有权限(如果有的话). 设置

Windows xp怎样修改文件或文件夹的访问权限

故障现象:在局域网内访问其他计算机上的文件或文件夹时提示只读,不能保存修改.   解决方法:在已经共享的文件或文件夹上点击鼠标右键选择[属性]-[安全]更改访问的权限即可.         注:共享文件涉及网络问题,所以存在其他可能性(比如网络问题服务器问题等),如此方法不能解决问题,建议检查其他设置.

如何在win7电脑中为文件夹文件夹设置完全控制权限?

  如果你现在还在盲目的使用文件传输的功能与其他人共享文件的话,那么你就真的是out了,因为其实一切根本就不用如此的麻烦,想要实现文件的共享,咱们只需要将自己win7系统下载官网电脑中的文件共享出来,那么在局域网中的win7旗舰版电脑就都可以查看到这个文件了.不过有时候光查看到文件是不够的,如果没有经过设置的话,一般共享文件只会拥有阅读权,而没有修改删除的权利,如果你需要拥有这个权限的话,那么下面,小编就来介绍一下,如何在win7旗舰版电脑中为文件夹文件夹设置完全控制权限. 1.首先,咱们在自己

Magento中文件与文件夹权限设置

SSH方式(适用于独立服务器或VPS)  代码如下 复制代码 find . -type f -exec chmod 644 {} ; find . -type d -exec chmod 755 {} ; chmod o+w var var/.htaccess app/etc chmod 550 mage chmod -R o+w media If that is not working, try setting all directories to 777 by doing this: fin