精华内容
下载资源
问答
  • VMware中的linux安装vmtools:无法右键复制到目录下-没有权限怎么办? 无法右键,就终端里面进行复制移动: 打开终端 输入su root,再输入密码(初步安装没有设置密码,所以先设置密码: sudo passwd,然后会让你...

    VMware中的linux安装vmtools:无法右键复制到目录下-没有权限怎么办?

    无法右键,就在终端里面进行复制移动:

    1. 打开终端
    2. 输入su root,再输入密码(初步安装没有设置密码,所以先设置密码: sudo passwd,然后会让你输入当前用户密码,输入完后再输入root用户密码就可以了)
    3. 把vmtools右键复制到Downloads暂存(因为这个目录下有权限)
    4. 终端转至Downloads:cd Downloads
    5. 查看vmtools:ls
    6. 终端输入: cp -r VMwareTools…tar.gz /home完成vmtools复制到我们想放的目录/home下
    7. 过后的vmtools安装参考https://blog.csdn.net/qq_40584960/article/details/82946371
    展开全文
  • Linux目录权限

    2016-05-06 17:19:00
    rmdir -p 不能成功删除非空目录,rmdir -p 删除一个不存在的目录时会报错,提示“没有那个文件或目录”2. 删除一个目录或者文件时,删除之前会先问一下我们是否删除,如果直接回车,是否删除呢?如果输入其他字母...

    1. rmdir -p  用来删除一串目录,是否可以成功删除?   rmdir -p  删除一个不存在的目录时是否报错呢?
    rmdir -p 不能成功删除非空目录,rmdir -p 删除一个不存在的目录时会报错,提示“没有那个文件或目录”

    2. 删除一个目录或者文件时,在删除之前会先问一下我们是否删除,如果直接回车,是否删除呢?如果输入其他字母会怎样?
    直接回车不会删除,如果输入的不是'y' 也 不是'n'也不会删除

    3. 我想创建一串目录时如何建,比如/home/1/2/3/4.
    mkdir -p /home/1/2/3/4

    4. 使用mv命令时,如果目标文件为非目录且存在的文件,会怎么样?
    会提示,是否要覆盖那个文件

    5. 使用less  查看文件/etc/passwd  搜索一下一共出现几个‘root', 按哪个键可以向上/向下一行一行的移动?
    一共出现了4次‘root',按n可以向下一行一行的移动,按N可以向上移动。

    6. 请想一想如果我们给某个目录的权限设置成rwxrw-rw-,那么其他用户能否ls该目录下的内容,能否进入到该目录下?
    因为其他用户对该目录的权限是读和写,没有执行权限,所以ls里面的内容是没有问题的,但是不能进入到该目录下,因为进入该目录,就相当于在“执行”这个目录。

    7. 如果设置 umask 为 001 , 那么用户默认创建的目录和文件的权限是什么样子的?
    通过umask计算默认权限的公式是: 
    1)目录  (rwxrwxrwx)-(umask)=(目录权限),本例中umask=001=(--------x),所以目录的权限是(rwxrwxrwx)-(--------x)=(rwxrwxrw-)=776
    2)文件 (rw-rw-rw-)-(umask)=(文件权限),本例中umask=001=(--------x),所以文件的权限是(rw-rw-rw-)-(--------x)=(rw-rw-rw-)=666
    所以得出结论,当umask为001时,目录权限是776,文件权限是666

    8. 用find找出 /var/ 目录下,最近一天内变更的文件?再用find找出 /root/ 目录下一小时内变更的文件?
    find /var/ -type f -mtime -1
    find /root/ -type f -mmin -60

    9. 用find找出 /etc/ 目录下,一年内从未变更过的文件?
    find /etc/ -type f ! -mtime -365

    10. 为什么硬链接不能链接目录? 硬链接的文件是否占用空间大小,硬链接文件是否可以垮分区创建?
    因为每个目录下面都会有一个.和..也就是说每个目录下面的子目录肯定会有它本身和它上一级目录,那么一旦设置了硬链接则会造成一种混乱,设置会导致死循环。硬链接的文件并不会占用空间大小,它只是复制了该文件的一份inode信息,硬链接文件是不可以跨分区创建的。

    11. Linux系统里,分别用什么符号表示: 普通文本文件、二进制文件、目录、链接文件、块设备、套接字文件以及串行端口设备?
    普通文件和二进制文件用-表示,目录用d表示,链接文件(应该说是软连接)用l表示,块设备用b表示,套接字用s表示,串行端口设备用c表示。

    12. 如何把把dira目录以及目录下的所有文件及目录修改为所属主为user1, 所属组为users?
    chown -R user1:users dira

    13. Linux系统,默认目录的权限为什么?文档的权限是什么?用三个数字表示。我们可以通过修改umask的值更改目录和文档的默认权限值,我们如何通过umask的值得到默认权限值?
    默认目录权限是755,文档权限是644,目录默认权限=(rwxrwxrwx)-(umask),文件默认权限=(rw-rw-rw-)-(umask)

    14. 修改dirb目录的权限,使所属主可读可写可执行,所属组可读可执行,其他用户不可读不可写也不可执行,使用什么命令?
    chmod 750 dirb

    15. 如何使文件只能写不能删除? 如何使文件不能被删除、重命名、设定链接接、写入、新增数据?
    chattr +a file 这样就可以使文件只能写不能删除
    chattr +i file 使文件不能被删除、重命名、设定链接接、写入、新增数据

    16. Linux 下一个点 '.' 和两个点 '..' 分别表示什么?
    一个点表示当前目录,两个点表示上级目录。

    17.  cd -  表示什么含义?
    cd - 表示进入到上一次所在的目录

    18.  用ls 查看目录或者文件时,第二列的数值表示什么意思?如果一个目录的这列的值为3,那么这个3是如何得到的?
    第二列数值表示有几个文件使用相同的inode,如果一个目录的这列为3,我们可以通过使用 ls -al dir/ |grep '^d'|wc -l 这条命令得到 

    19. 如果没有locate命令,需要我们安装哪个包?初次使用locate命令会报错“can not open `/var/lib/mlocate/mlocate.db': No such file or directory”, 需要我们如何做呢?
    没有locate命令,需要安装mlocate包,yum install -y mlocate, 初次使用报错,是因为对应的数据库文件还没有生成,手动生成的命令是:updatedb

    20. 当拷贝一个文件时,如果目标文件存在会问我们是否覆盖,如何做就不再询问了?
    使用 /bin/cp 进行拷贝: /bin/cp a.txt  b.txt

    21. 如何动态显示一个文件的内容,假如这个文件内容一直再增加。
    tail -f file

    22. 更改文件读写执行权限的命令是什么?如何把一个目录下的所有文件(不含目录)权限改为644?
    chmod 用来更改文件权限,find ./ -type f |xargs chmod 644

    23. 如何查看当前用户的家目录是什么?
    echo $HOME

    24. 假如一个目录可以让任何人可写,那么如何能做到该目录下的文件只允许文件的所有者更改?
    chmod o+wt dir

    25. 简述软链接和硬链接的区别?
    软连接可以理解为,源文件的快捷方式,软连接文件记录的是源文件的路径,占用空间非常小。当把源文件删除后,那么软连接文件也就变成一个坏文件了,不能使用了。
    硬链接和源文件的inode信息是一模一样的,可以说硬链接文件只是复制了一份源文件的inode信息,在我们看来硬链接文件和源文件没有什么区别,删除任何一个文件对方都不受影响,唯一的是少了一份inode,硬链接只能在同一个分区下创建,而软连接不受限制。硬链接文件和源文件虽然看起来像是两个文件,但是只占用一个文件的磁盘空间。

    26. cat a.txt 会更改a.txt的什么时间?  chmod 644 a.txt 会更改a.txt的什么时间? vim呢? 直接touch呢?
    cat 修改atime, chmod 会更改ctime, vim会更改atime,ctime,mtime, touch也会更改三个时间。

    扩展部分:
    1. 简单描述inode是什么,不超过100字。
    inode是用来记录Linux系统里面文件的属性信息的一个容器,它会记录文件名、文件的大小、属主属组、文件的权限、文件的访问时间、修改/创建时间以及更改时间(更改inode信息)等等信息。在Linux系统里,每一个文件都会有一个唯一的inode.

    2. 描述 suid sgid的作用。
    suid:用于二进制可执行文件,使用户在执行该文件时临时拥有该文件属主的权限,典型文件为/usr/bin/passwd,它更改用户的密码时是会更改这些文件的:/etc/passwd和/etc/shadow等,这些文件默认普通用户没有写权限。
    sgid:用于目录,用户在该目录下创建的文件都拥有与该目录相同的属组。

    3. linux中的atime, ctime, mtime 如何区分呢?
    atime为文件最后的访问时间;
    ctime为最后一次更改inode信息的时间,比如更改文件名、文件权限、写入新内容(改变了文件大小)等就会更改这个时间;
    mtime为最后一次更改文件内容的时间;

    4. 简述selinux是什么?
    selinux是RedHat/CentOS系统特有的安全机制,它提供强制访问控制,限制进程只能访问那些在它的任务中所需要文件。SELinux是2.6版本的Linux内核中提供的强制访问控制(MAC)系统。对于目前可用的 Linux安全模块来说,SELinux 是功能最全面,而且测试最充分的。SELinux 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念。

    5. 查找当前目录设置过set_uid的文件,为了使该题更加简单,设定要查找的文件权限为4644,请参考上面的9。
    find . -perm  4644

     

    转载于:https://www.cnblogs.com/zhangyin6985/p/5466388.html

    展开全文
  • D 当配置了D目录权限为只读或者读写或者管理,那么只有用户访问D目录时才有权限,访问A或B或C都没有任何权限,仅仅在输入A->B->C->D完整目录时才有权限。这种配置起来比较繁琐。2.继承式:A->B->C-...

       需求为文件夹权限设置:管理员可以新建和维护文件夹(目录), 不同用户在拥有的目录的权限可控,权限分为只读、读写和管理。

       参考svn文件夹权限后想到两种实现方式:1.阻断式:A->B->C->D  当配置了D目录的权限为只读或者读写或者管理,那么只有用户访问D目录时才有权限,访问A或B或C都没有任何权限,仅仅在输入A->B->C->D完整目录时才有权限。这种配置起来比较繁琐。2.继承式:A->B->C->D  当配置了D目录的权限为只读或者读写或者管理,那么访问A或B或C目录都有“可读”的权限,即用户能分别访问A、B、C目录下的文件,但是不能写入或者删除。

        考虑到继承式的方式配置简单,所以采用此方式。

        以下为实现过程:

      1.文件夹权限表结构设计

    CREATE TABLE `disk_file_folder_privilege` (
      `id` varchar(32) NOT NULL COMMENT '主键',
      `user_id` varchar(32) DEFAULT NULL COMMENT '用户id',
      `role_id` varchar(32) DEFAULT NULL,
      `present_catalog` varchar(32) DEFAULT NULL COMMENT '当前文件夹目录',
      `whole_catalog` varchar(512) DEFAULT NULL COMMENT '完整文件夹目录',
      `readable` char(1) DEFAULT NULL COMMENT '可读:1',
      `writable` char(1) DEFAULT NULL COMMENT '可写:1',
      `manage` char(1) DEFAULT NULL COMMENT '管理:1',
      `create_time` varchar(32) DEFAULT NULL,
      `update_time` varchar(32) DEFAULT NULL,
      `creater` varchar(32) DEFAULT NULL,
      `updater` varchar(32) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='文件夹权限表';

    数据格式如下图:

    2.保存文件夹权限接口服务

     /**
         * 保存文件夹目录权限
         *
         * @param diskFileFolderPrivilege
         * @return
         */
        @Transactional(rollbackFor = Exception.class)
        @Override
        public ServiceResult<Boolean> save(DiskFileFolderPrivilegeAO diskFileFolderPrivilege) {
            if (StringUtils.isEmpty(diskFileFolderPrivilege.getFileId())) {
                return ServiceResultHelper.genResultWithFaild("请选择文件夹目录", -1);
            }
            DiskFileAO diskFile = diskFileService.selectByPrimaryKey(diskFileFolderPrivilege.getFileId()).getData();
            if (diskFile == null) {
                return ServiceResultHelper.genResultWithFaild("文件或文件夹目录不存在", -1);
            }
            if (!StringUtils.isEmpty(diskFile.getTypecode())) {
                return ServiceResultHelper.genResultWithFaild("请选择文件夹目录", -1);
            }
            if (StringUtils.isEmpty(diskFileFolderPrivilege.getReadable())
                    && StringUtils.isEmpty(diskFileFolderPrivilege.getWritable())
                    && StringUtils.isEmpty(diskFileFolderPrivilege.getManage())) {
                return ServiceResultHelper.genResultWithFaild("请设置文件夹目录权限", -1);
            }
            List<DiskFileAO> fileFloderList = diskFileService.listAllFileFolder().getData();
            List<DiskFileAO> parentList = new ArrayList<>();
            UserAO user = AuthUtil.getCurrentUser();
            List<DiskFileFolderPrivilegeAO> result = new ArrayList<>();
            if (!CollectionUtils.isEmpty(fileFloderList)) {
                //查询所有父级
                diskFileService.getAllParentListWithChild(fileFloderList, diskFileFolderPrivilege.getFileId(), parentList);
                if (!CollectionUtils.isEmpty(parentList)) {
                    for (int i = 0; i < parentList.size(); i++) {
                        DiskFileAO file = parentList.get(i);
                        DiskFileFolderPrivilegeAO tmp = new DiskFileFolderPrivilegeAO();
                        tmp.setUserId(diskFileFolderPrivilege.getUserId());
                        tmp.setRoleId(diskFileFolderPrivilege.getRoleId());
                        tmp.setCreater(user.getUserName());
                        tmp.setCreateTime(DateTimeUtil.formatDateTime(new Date()));
                        tmp.setPresentCatalog(file.getId());//当前文件夹目录
                        tmp.setReadable(Constant.VALID_FLG.toString());
                        //设置所选文件夹的可写,管理权限
                        if (i == parentList.size() - 1) {
                            if (Constant.VALID_FLG.toString().equals(diskFileFolderPrivilege.getWritable())) {
                                tmp.setWritable(diskFileFolderPrivilege.getWritable());
                            }
                            if (Constant.VALID_FLG.toString().equals(diskFileFolderPrivilege.getManage())) {
                                tmp.setWritable(Constant.VALID_FLG.toString());
                                tmp.setManage(diskFileFolderPrivilege.getManage());
                            }
                        }
                        if (i == 0) {
                            tmp.setWholeCatalog(file.getId());//完整文件夹目录
                        } else {
                            StringBuilder fileId = new StringBuilder();
                            for (int j = 0; j <= i; j++) {
                                fileId.append(parentList.get(j).getId());
                                if (j < i) {
                                    fileId.append("/");
                                }
                            }
                            tmp.setWholeCatalog(fileId.toString());
                        }
                        result.add(tmp);
                    }
                }
            }
            //子级目录不覆盖父级目录的权限,需要比较权限的大小
            deleteByFolderCatalog(result);
            if (!CollectionUtils.isEmpty(result)) {
                insertBatch(result);
            }
            return ServiceResultHelper.genResultWithSuccess();
        }
    
    
        /**
         * 删除已存在的权限,需要比较权限的大小
         * 子级目录不覆盖父级目录的权限
         *
         * @param result
         * @return
         */
        public ServiceResult deleteByFolderCatalog(List<DiskFileFolderPrivilegeAO> result) {
            if (!CollectionUtils.isEmpty(result)) {
                Iterator<DiskFileFolderPrivilegeAO> resultIt = result.iterator();
                while (resultIt.hasNext()) {
                    DiskFileFolderPrivilegeAO privilege = resultIt.next();
                    DiskFileFolderPrivilegeCriteria criteria = new DiskFileFolderPrivilegeCriteria();
                    DiskFileFolderPrivilegeCriteria.Criteria c = criteria.createCriteria();
                    String userId = privilege.getUserId();
                    if (StringUtils.isEmpty(userId)) {
                        return ServiceResultHelper.genResultWithFaild("用户id不能为空", -1);
                    }
                    if (StringUtils.isEmpty(privilege.getWholeCatalog())) {
                        return ServiceResultHelper.genResultWithFaild("文件夹目录不能为空", -1);
                    }
                    if (!StringUtils.isEmpty(userId)) {
                        c.andUserIdEqualTo(userId);
                    }
                    c.andWholeCatalogEqualTo(privilege.getWholeCatalog());
                    List<DiskFileFolderPrivilegeAO> privilegeList = selectByCriteria(criteria).getData();
    
                    if (!CollectionUtils.isEmpty(privilegeList)) {
                        //如果权限已经存在了,并且权限的范围更大,则不再进行删除操作
                        boolean isRemove = false;//是否做移除操作
                        DiskFileFolderPrivilegeAO folderPrivilege = privilegeList.get(0);
                        //如果是最后一级目录,直接删除
                        if (!resultIt.hasNext()) {
                            deleteByCriteria(criteria);
                            isRemove = true;
                        } else {
                            if (!StringUtils.isEmpty(privilege.getManage())
                                    && StringUtils.isEmpty(folderPrivilege.getManage())) {
                                deleteByCriteria(criteria);
                                isRemove = true;
                            } else if (!StringUtils.isEmpty(privilege.getWritable())
                                    && StringUtils.isEmpty(folderPrivilege.getWritable())) {
                                deleteByCriteria(criteria);
                                isRemove = true;
                            }
                        }
                        if (!isRemove) {
                            resultIt.remove();
                        }
                    }
                }
            }
            return ServiceResultHelper.genResultWithSuccess();
        }
    
        @Override
        public int insertBatch(List<DiskFileFolderPrivilegeAO> privilegeAOList) {
            return diskFileFolderPrivilegeCustomizedMapper.insertBatch(privilegeAOList);
        }
    

    mybatis中的xml配置:

    <?xml version="1.0" encoding="UTF-8"?>
    <!--
    
        Description: A generated data access implementation of entity DiskFileFolderPrivilege.
                     Generated at 2020-07-31 11:23:44, do NOT modify!
        Author: <a href="mailto:DL88250@gmail.com">Liang Ding</a>
        Version: 1.0.0.0, Jul 31, 2020
    
    -->
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
    <mapper namespace="cn.datainvest.dms.system.dao.customized.DiskFileFolderPrivilegeCustomizedMapper" >
      <resultMap id="BaseResultMap" type="cn.datainvest.dms.system.entity.customized.DiskFileFolderPrivilegeAO" >
        <id column="id" property="id" jdbcType="VARCHAR" />
        <result column="user_id" property="userId" jdbcType="VARCHAR" />
        <result column="role_id" property="roleId" jdbcType="VARCHAR" />
        <result column="present_catalog" property="presentCatalog" jdbcType="VARCHAR" />
        <result column="whole_catalog" property="wholeCatalog" jdbcType="VARCHAR" />
        <result column="readable" property="readable" jdbcType="CHAR" />
        <result column="writable" property="writable" jdbcType="CHAR" />
        <result column="manage" property="manage" jdbcType="CHAR" />
        <result column="create_time" property="createTime" jdbcType="VARCHAR" />
        <result column="update_time" property="updateTime" jdbcType="VARCHAR" />
        <result column="creater" property="creater" jdbcType="VARCHAR" />
        <result column="updater" property="updater" jdbcType="VARCHAR" />
      </resultMap>
    
      <!-- 批量插入 -->
      <insert id="insertBatch" parameterType="java.util.List">
        insert into disk_file_folder_privilege (id, user_id, role_id,
        present_catalog, whole_catalog, readable, writable,
        manage, create_time, update_time,
        creater, updater)
        values
        <foreach collection="list" item="item" index="index" separator=",">
          (uuid_short(), #{item.userId,jdbcType=VARCHAR}, #{item.roleId,jdbcType=VARCHAR},
          #{item.presentCatalog,jdbcType=VARCHAR}, #{item.wholeCatalog,jdbcType=VARCHAR}, #{item.readable,jdbcType=CHAR}, #{item.writable,jdbcType=CHAR},
          #{item.manage,jdbcType=CHAR}, #{item.createTime,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=VARCHAR},
          #{item.creater,jdbcType=VARCHAR}, #{item.updater,jdbcType=VARCHAR})
        </foreach>
      </insert>
    </mapper>

     pojo,配置:

    import java.io.Serializable;
    import cn.datainvest.dms.system.entity.gen.DiskFileFolderPrivilege;
    
    import org.apache.commons.lang3.builder.ToStringBuilder;
    import org.apache.commons.lang3.builder.ToStringStyle;
    import org.codehaus.jackson.map.annotate.JsonSerialize;
    import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
    
    /**
     * 应用对象 - DiskFileFolderPrivilege.
     * <p>
     * 该类于 2020-07-31 10:46:58 首次生成,后由开发手工维护。
     * </p>
     * @author yangfeng
     * @version 1.0.0, Jul 31, 2020
     */
    @JsonSerialize(include = Inclusion.ALWAYS)
    public final class DiskFileFolderPrivilegeAO extends DiskFileFolderPrivilege implements Serializable {
    
        /**
         * 默认的序列化 id.
         */
        private static final long serialVersionUID = 1L;
    
        private String fileId;
    
        public String getFileId() {
            return fileId;
        }
    
        public void setFileId(String fileId) {
            this.fileId = fileId;
        }
    
        @Override
        public String toString() {
            return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
        }
    }
    

        fileId用来接收配置的文件夹id, readable、 writable、 manage三个字段分别对应可读、可写、管理权限。值为1是表示有相应权限没有则不需要传入值,保持null。

          presentCatalog字段表示当前文件夹id,wholeCatalog表示完整目录的文件夹id。为什么不存文件名:考虑到文件夹目录会重命名导致权限失效。

         wholeCatalog拆分的各级父目录readable均为1,均有可读权限。删除已存在的权限,需要比较权限的大小 ,子级目录不覆盖父级目录的权限。 拆分目录后如果是最后一级目录(即选择的当前文件夹),直接删除对应的权限,重新设置。否则,对应的其他上级目录,如果权限已经存在了,并且权限的范围更大,则不再进行删除操作,防止缩小父级权限。
          3. 文件表:

    CREATE TABLE `disk_file` (
      `id` varchar(50) NOT NULL,
      `createtime` datetime DEFAULT NULL,
      `createuserid` varchar(50) DEFAULT NULL,
      `createusername` varchar(50) DEFAULT NULL,
      `filemd5` varchar(200) DEFAULT NULL,
      `filename` varchar(255) DEFAULT NULL,
      `filesize` bigint(20) NOT NULL,
      `filesuffix` varchar(20) DEFAULT NULL,
      `filetype` int(11) DEFAULT NULL,
      `imgsize` varchar(50) DEFAULT NULL,
      `pid` varchar(50) DEFAULT NULL,
      `thumbnailurl` varchar(200) DEFAULT NULL,
      `typecode` varchar(50) DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `UKfjg8ov86e52cc1vw2g4cahpu7` (`createuserid`,`pid`,`filetype`,`filename`),
      KEY `IDX7h8ca5qp48qow851woryvg8q` (`pid`),
      KEY `IDX9j6hnchh4o79nofxhjgy0lc29` (`filename`),
      KEY `IDXlhtq88mi2kvwxihin21rvvm9b` (`typecode`),
      KEY `IDXb244b04v1wu3ftqfqjt7wodks` (`filesuffix`),
      KEY `IDXq0mhp53s6a40gh5w93bqmx5jp` (`filetype`),
      KEY `IDXc7snngp84h66d6f64u0l0hb56` (`createuserid`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
    
    

    type_code为空表示文件夹目录。pid=“0”,表示根目录。查询可读的文件和文件夹,关联文件夹目录权限,超级管理员可以查看所有。普通用户可以查看拥有权限的文件夹,以及创建者是本人的文件和文件夹。

    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
    <mapper namespace="cn.datainvest.dms.system.dao.customized.DiskFileCustomizedMapper" >
      <resultMap id="CustomResultMap" type="cn.datainvest.dms.system.entity.customized.DiskFileAO" >
        <id column="id" property="id" jdbcType="VARCHAR" />
        <result column="createtime" property="createtime" jdbcType="TIMESTAMP" />
        <result column="createuserid" property="createuserid" jdbcType="VARCHAR" />
        <result column="createusername" property="createusername" jdbcType="VARCHAR" />
        <result column="filemd5" property="filemd5" jdbcType="VARCHAR" />
        <result column="filename" property="filename" jdbcType="VARCHAR" />
        <result column="filesize" property="filesize" jdbcType="BIGINT" />
        <result column="filesuffix" property="filesuffix" jdbcType="VARCHAR" />
        <result column="filetype" property="filetype" jdbcType="INTEGER" />
        <result column="imgsize" property="imgsize" jdbcType="VARCHAR" />
        <result column="pid" property="pid" jdbcType="VARCHAR" />
        <result column="fileicon" property="fileicon" jdbcType="VARCHAR" />
        <result column="thumbnailurl" property="thumbnailurl" jdbcType="VARCHAR" />
        <result column="typecode" property="typecode" jdbcType="VARCHAR" />
      </resultMap>
    
      <select id="findAllList"  resultMap="CustomResultMap"
              parameterType="cn.datainvest.dms.system.dto.request.DiskFileRequest">
          SELECT
                  t2.id,
                  t2.filename,
                  t2.filesize,
                  t2.filetype,
                  t2.filemd5,
                  t2.filesuffix,
                  date_format(t2.createtime,'%Y-%m-%d %H:%i:%S') AS createtime,
                  dts.icon AS fileicon
          FROM
          (
              SELECT
                    *
              FROM
                    disk_file t1
              <if test="isSuperAdmin != null and isSuperAdmin != '' and isSuperAdmin == 'false' ">
              WHERE
                    createuserid = #{userid, jdbcType=VARCHAR}
                    AND pid = #{pid, jdbcType=VARCHAR}
              UNION
              SELECT
                    df.*
              FROM
                    disk_file df
              INNER JOIN (
                      SELECT
                            present_catalog
                      FROM
                            `disk_file_folder_privilege`
                      WHERE
                            user_id = #{userid, jdbcType=VARCHAR}
              ) tmp ON (tmp.present_catalog = df.id OR tmp.present_catalog = df.pid)
              </if>
              WHERE
                    pid = #{pid, jdbcType=VARCHAR}
          ) t2
          LEFT JOIN
                  disk_type_suffix dts
                  ON dts.suffix = t2.filesuffix
                  AND dts.typecode = t2.typecode
        <where>
            <if test="typecode != null and typecode != '' and typecode != 'all' and typecode != 'ALL' ">
                AND t2.typecode = #{typecode, jdbcType=VARCHAR}
            </if>
            <if test="filesuffix != null and filesuffix != '' ">
                AND t2.filesuffix = #{filesuffix, jdbcType=VARCHAR}
            </if>
            <if test="filename != null and filename != ''">
                AND t2.filename LIKE CONCAT('%', #{filename, jdbcType=VARCHAR},'%')
            </if>
        </where>
        <choose>
            <when test="orderfield != null and orderfield != '' and ordertype != null and ordertype != ''">
              order by ${orderfield} ${ordertype}
            </when>
            <otherwise>
              order by t2.createtime desc
            </otherwise>
        </choose>
      </select>
    

     

    展开全文
  • ubuntu14.04下如何配置samba就不多说了,我的问题是配置完成以后,从windows访问共享目录,都连上了,但是点开share文件夹却弹出没有权限访问的对话框。如下图所示: 这个问题搞了好久,网上试了各种...

    本人直接在ubuntu里面输入了下文中2条红色命令行,重启ubuntu后解决问题。

    PS:以下为原贴原文

    步骤一:

    在ubuntu14.04下如何配置samba就不多说了,我的问题是配置完成以后,从windows访问共享目录,都连上了,但是点开share文件夹却弹出没有权限访问的对话框。如下图所示:


    这个问题搞了好久,网上试了各种方法都不行,最后看了下/var/log/samba/目录下的log.%m文件,里面输出的几条log信息如下:

    [2016/10/17 20:27:00.296304,  0] ../lib/util/become_daemon.c:111(exit_daemon)
      STATUS=daemon failed to start: Samba detected misconfigured 'server role' and exited. Check logs for details, error code 22
    [2016/10/17 20:50:00.983427,  0] ../source4/smbd/server.c:372(binary_smbd_main)
      samba version 4.3.11-Ubuntu started.
      Copyright Andrew Tridgell and the Samba Team 1992-2015

    看到上面的Log 输出failed的地方有个daemon,猜想是不是daemon没有安装,于是用下面命令安装了该软件:

    sudo apt-get install daemon

    然后重新启动后神奇般就可以访问samba共享目录了,特此记录下

    步骤二:
    ubuntu自身文件夹底部,连接到服务器可以正常访问。
    windows可以访问其它samba服务器,偏偏我这个新安装的ubuntu14.04 samba不行。一番折腾终于搞定,记录关键点如下:
     
    一、学会搜索
    盲目搜索就会浪费时间了,查log才是程序员干的事:
    /var/log/samba/
    Bad talloc magic value - unknown value
    Fix:
    sudo apt-get install libtalloc2
     
    二、testparm -s 命令使用
    testparm rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
    Fix:
    sudo vim /etc/security/limits.conf
    # End of file
    * - nofile 16384
     
    三、重新配置smb.conf
    sudo cp /usr/share/samba/smb.conf /etc/samba/
    sudo vim /etc/samba/smb.conf
    [win-share]
    comment = Printer Drivers
    path = /home/win
    browseable = yes
    read only = no
    guest ok = yes
    public = no
    writeable = yes
    sudo smbpasswd -a win
    sudo service smbd restart
     
    四、其它
    smbclient //192.168.1.157/zhaoshare
    sudo mount -t cifs -o username=win,password=123456 //192.168.1.157/win /home/win/smb
    https://download.samba.org/pub/samba/stable/
    甚至有人自己编译最新的samba,我就不玩了。
    展开全文
  • 下面一步一步介绍如何修改权限: 1.打开终端。输入”su”(没有引号) ...假设我要修改文件权限为777,则终端输入 chmod 777 /var/home/userid/cc 文件夹的权限就变为了777。 如果是修改文件夹及子文件夹权限可以...
  • 下面一步一步介绍如何修改权限:1.打开终端。...假设我要修改文件权限为777,则终端输入 chmod 777 /usr/share/vim/vim70 文件夹的权限就变为了777。 如果是修改文件夹及子文件夹权限可以用 chm...
  • 可以终端直接运行 sudo nautilus,弹出来的nautilus可以直接GUI操作,中途别关终端。如果遇到需要输入root密码,则输入root密码就可以启动这个图形界面了。
  • 目录和常规文件一样使用相同的权限位进行标识,但是... 执行权限允许用户输入目录并访问任意子目录。没有执行权限,目录下的文件系统对象就是不可访问的。  没有权限,目录下的文件系统对象 目录清单下就是不
  • 大家linux的相关文件下,经常能看到下面的显示(当你输入ls -al之后) ...由于其他用户没有可执行权限(即 x 权限),那么他有 r 权限也是没有用,想想,他目录下都没有执行权限,那他自然就不能进去了。
  • 没有权限的话最好是通过命令来解决,linux下有超级用户(root)和普通用户,普通用户不能直接操作没有权限目录。对于你的问题以下分两种解决办法介绍: 打开终端:alt+f2,输入gnome-terminal,回车,弹出的界面...
  • 解决 Win10没有修改 hosts文件权限问题

    万次阅读 多人点赞 2018-02-01 16:50:21
    当遇到有hosts文件不能编辑或者修改了没办法保存,以及需要权限等问题: 1、win+R 2、进入hosts的文件所在目录,点击‘’文件‘’按钮 3、点击Windows PowerShell ,点击以管理员身份打开 4、弹出一个...
  • 解决Windows10下没有权限修改hosts文件的问题

    万次阅读 多人点赞 2018-10-22 16:29:15
    书到用时方恨少啊,网上看了很多,最后终于找到了个能用的. 当遇到有hosts文件不会编辑或者,修改了没办法保存”,以及需要权限等问题如图: 我学了一招,现在交给你: 1、win+R 输入:C:\Windows\System32\...
  • 本人centos系统里面,修改了/var/的某些目录权限。重新启动出现错误 could not update ICEauthority file。按照网上的修复方法进入单用户模式输入 chown -R root:root /var chown -R gdm: /var/lib/gdm 结果重启...
  • 首先有些目录在finder里面是没有办法修改的。 可能不是root用户的关系吧 最简单的办法,当然是shell 打开 Terminal 我忘了root的密码了。只能从这里进入。 ls一下,发现不是根目录 仔细一看有个~ cd…返回上一级 ...
  • 安装cuda之后查询是否安装成功时,输入了以下三条命令: cd /usr/local/cuda-10.0/samples/1_Utilities/deviceQuery make ./deviceQuery 第二条命令make时报错:bash: ./deviceQuery.cpp: 权限不够。 这是因为...
  • 实际上,一般情况下普通用户不能root目录下创建文件及目录,因为没有权限,会提示“不能XXX创建新文件”。普通用户要想root下拥有创建新文件的权限,必须拥有root用户的权限下,修改普通用户对root目录的...
  • 学习用SQLite数据库框架,但是Mac系统下出现了一个问题(本人刚用Mac系统的小白),我的DDMS中data目录不能打开,用命令行也不行。 首先我想解决命令行不能使用的问题。 原因:没有安装adb; 解决方案: 1.打开...
  • 修改win7 system32目录权限

    千次阅读 2013-12-07 19:35:15
    首先在C:/Windows/System32/DriverStore/FileRepository上点击右键-属性,我们先来获得这个文件夹的所有权,点安全-高级-所有者,接着点编辑-高级其他用户或组,在输入选择的对象名称里面输入你的用户名,或者点高级...
  • 解决方法: 首先登录到单用户模式下: 输入命令:mount -o remount, rw / (将根目录重新挂载为读写权限,-o,指option) 然后进行修改相应配置信息即可。 希望能够帮到您!

空空如也

空空如也

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

在输入目录没有权限