我试图以user1的身份运行zip命令:
[user1@host ~]$ sudo zip -P 68SqkCtNAxUpVoX8KPm /tmp/metazip /mnt/blumeta0/db2/ssl_keystore/sl_keystore/* /home/user2/sqllib/sqlrsdir/* /home/user2/sqllib/profile.env /home/user2/sqllib/db2systm /home/user2/db2/keystore/*
zip warning: name not matched: /home/user2/db2/keystore/*
updating: mnt/blumeta0/db2/ssl_keystore/bludb_ssl.crl (stored 0%)
updating: mnt/blumeta0/db2/ssl_keystore/bludb_ssl.kdb (deflated 69%)
updating: mnt/blumeta0/db2/ssl_keystore/bludb_ssl.rdb (deflated 1%)
updating: mnt/blumeta0/db2/ssl_keystore/bludb_ssl.sth (stored 0%)
updating: home/user2/sqllib/sqlrsdir/sqlrsbak (deflated 94%)
updating: home/user2/sqllib/sqlrsdir/sqlrsdir (deflated 94%)
updating: home/user2/sqllib/profile.env (deflated 34%)
updating: home/user2/sqllib/db2systm (deflated 98%)
您可以看到/home/user2/db2/keystore/
未被压缩,因为user1没有访问该文件夹的权限
[user1@host ~]$ ls -l /home/user2/db2/keystore/
ls: cannot open directory /home/user2/db2/keystore/: Permission denied
/ home / user2 / db2 / keystore上的当前权限是:
[root@host /]# ls -l /home/user2/db2/keystore/
total 12
-rw------- 1 user2 db2iadm1 6846 Oct 21 17:30 keystore.p12
-rw------- 1 user2 db2iadm1 193 Oct 21 15:11 keystore.sth
[root@host /]# ls -l /home/user2/db2/
total 4
drwx------ 2 user2 db2iadm1 6144 Oct 21 15:11 keystore
如果我将这些文件和文件夹的权限更改为
[root@host /]# ls -l /home/user2/db2/keystore/
total 12
-rw-r----- 1 user2 db2iadm1 6846 Oct 21 17:30 keystore.p12
-rw-r----- 1 user2 db2iadm1 193 Oct 21 15:11 keystore.sth
[root@host /]# ls -l /home/user2/db2/
total 4
drwxr----- 2 user2 db2iadm1 6144 Oct 21 15:11 keystore
我可以拉锁。但是sudo(root)具有访问文件和文件夹的权限,因此使用sudo进行zip压缩应该能够对它们进行压缩。假设存在问题,我尝试\
跳过*
,也尝试''
来解决此问题,但仍然无法压缩该文件夹。任何线索,这里缺少什么?
答案 0 :(得分:0)
通配符是由外壳执行的,而不是由zip执行的,因此升级zip的权限不会更改是否进行通配符操作。使用sudo
来运行具有足够特权来执行glob的新/不同的shell:
sudo sh -s <<'EOF'
zip -P 68SqkCtNAxUpVoX8KPm /tmp/metazip /mnt/blumeta0/db2/ssl_keystore/sl_keystore/* /home/user2/sqllib/sqlrsdir/* /home/user2/sqllib/profile.env /home/user2/sqllib/db2systm /home/user2/db2/keystore/*
EOF