Python:在setuid之后使用SQLite Python 2.7.12(默认,2016年11月19日06:48:10) 有关详细信息,请键入“版权”、“信用”或“许可证”。 iPython2.4.1——一种增强的交互式Python。 ? -> 介绍和概述IPython的功能。 %快速参考->快速参考。 帮助->Python自己的帮助系统。 对象?->有关“对象”的详细信息,请使用“对象??”获取更多详细信息。 In[1]:ls-l 总数8 -rwxrwxrwx 1根根目录6144七月8日18:01根目录.db* 在[2]中:导入操作系统、sqlite3、pwd 在[3]:os.getresuid()中 Out[3]:(0,0,0) 在[4]中:pwd.getpwuid(1001) Out[4]:pwd.struct_passwd(pw_name='testac',pw_passwd='x',pw_uid=1001,pw_gid=1001,pw_gecos='',pw_dir='/home/testac',pw_shell='') In[5]:os.seteuid(1001) 在[6]中:db=sqlite3.connect('root.db') [7]:db.execute(“创建表A(测试文本)”) --------------------------------------------------------------------------- 操作错误回溯(最近一次呼叫最后一次) 在() ---->1 db.execute(“创建表A(测试文本)”) 操作错误:无法打开数据库文件
以上是我的问题的一个例子 我有一个sqlite3数据库,每个人都可以读写。 如您所见,我的python是在root下运行的。然后我将有效用户设置为普通用户。然后打开sqlite3数据库。它会说无法打开数据库Python:在setuid之后使用SQLite Python 2.7.12(默认,2016年11月19日06:48:10) 有关详细信息,请键入“版权”、“信用”或“许可证”。 iPython2.4.1——一种增强的交互式Python。 ? -> 介绍和概述IPython的功能。 %快速参考->快速参考。 帮助->Python自己的帮助系统。 对象?->有关“对象”的详细信息,请使用“对象??”获取更多详细信息。 In[1]:ls-l 总数8 -rwxrwxrwx 1根根目录6144七月8日18:01根目录.db* 在[2]中:导入操作系统、sqlite3、pwd 在[3]:os.getresuid()中 Out[3]:(0,0,0) 在[4]中:pwd.getpwuid(1001) Out[4]:pwd.struct_passwd(pw_name='testac',pw_passwd='x',pw_uid=1001,pw_gid=1001,pw_gecos='',pw_dir='/home/testac',pw_shell='') In[5]:os.seteuid(1001) 在[6]中:db=sqlite3.connect('root.db') [7]:db.execute(“创建表A(测试文本)”) --------------------------------------------------------------------------- 操作错误回溯(最近一次呼叫最后一次) 在() ---->1 db.execute(“创建表A(测试文本)”) 操作错误:无法打开数据库文件,python,sqlite,setuid,Python,Sqlite,Setuid,以上是我的问题的一个例子 我有一个sqlite3数据库,每个人都可以读写。 如您所见,我的python是在root下运行的。然后我将有效用户设置为普通用户。然后打开sqlite3数据库。它会说无法打开数据库 为什么我不能打开那个数据库?谢谢。你为什么要摆弄现在的工作目录?db文件存储在哪个目录中?目录权限是什么?[drwxr-xr-x 0用户512 Jul 8 18:11用户]要这样写入数据库,目录需要什么权限?为什么?我试过766,但还是失败了,777通过了。你为什么要弄乱当前的工作目录?db
为什么我不能打开那个数据库?谢谢。你为什么要摆弄现在的工作目录?db文件存储在哪个目录中?目录权限是什么?[drwxr-xr-x 0用户512 Jul 8 18:11用户]要这样写入数据库,目录需要什么权限?为什么?我试过766,但还是失败了,777通过了。你为什么要弄乱当前的工作目录?db文件存储在哪个目录中?目录权限是什么?[drwxr-xr-x 0用户512 Jul 8 18:11用户]要这样写入数据库,目录需要什么权限?为什么?我试过766,但还是失败了,777通过了。
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
Type "copyright", "credits" or "license" for more information.
IPython 2.4.1 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: ls -l
total 8
-rwxrwxrwx 1 root root 6144 Jul 8 18:01 root.db*
In [2]: import os,sqlite3,pwd
In [3]: os.getresuid()
Out[3]: (0, 0, 0)
In [4]: pwd.getpwuid(1001)
Out[4]: pwd.struct_passwd(pw_name='testac', pw_passwd='x', pw_uid=1001, pw_gid=1001, pw_gecos='', pw_dir='/home/testac', pw_shell='')
In [5]: os.seteuid(1001)
In [6]: db = sqlite3.connect('root.db')
In [7]: db.execute("Create table A ( test text )")
---------------------------------------------------------------------------
OperationalError Traceback (most recent call last)
<ipython-input-7-5236fe81d6c5> in <module>()
----> 1 db.execute("Create table A ( test text )")
OperationalError: unable to open database file