~mrooney/ecryptfs/nautilus-integration

« back to all changes in this revision

Viewing changes to src/python/ecryptapi.py

  • Committer: Dustin Kirkland
  • Date: 2009-05-18 17:02:55 UTC
  • Revision ID: kirkland@canonical.com-20090518170255-6q3jhluq044hiuyr
  * src/utils/ecryptfs-setup-swap: switch from vol_id to blkid,
    LP: #376486


Signed-off-by: Dustin Kirkland <kirkland@canonical.com>

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/usr/bin/env python
2
 
#
3
 
#    ecryptapi.py, Copyright 2008 Mike Rooney (https://launchpad.net/~mrooney)
4
 
#    Date: 2008-12-12
5
 
#    Version: 0.3
6
 
#
7
 
#    This is a graphical GTK utility to manage an encrypted ~/Private
8
 
#    directory, allowing the user to mount and unmount, as well as enable
9
 
#    auto-mounting at login.
10
 
#
11
 
#    This program is free software: you can redistribute it and/or modify
12
 
#    it under the terms of the GNU General Public License as published by
13
 
#    the Free Software Foundation, either version 3 of the License, or
14
 
#    (at your option) any later version.
15
 
#
16
 
#    This program is distributed in the hope that it will be useful,
17
 
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
18
 
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19
 
#    GNU General Public License for more details.
20
 
#
21
 
#    You should have received a copy of the GNU General Public License
22
 
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
23
 
 
24
 
import commands, os
25
 
 
26
 
AUTOMOUNT_FILE = os.path.expanduser("~/.ecryptfs/auto-mount")
27
 
AUTOUMOUNT_FILE = os.path.expanduser("~/.ecryptfs/auto-umount")
28
 
PRIVATE_LOCATION_FILE = os.path.expanduser("~/.ecryptfs/Private.mnt")
29
 
PRIVATE_LOCATION = os.path.exists(PRIVATE_LOCATION_FILE) and open(PRIVATE_LOCATION_FILE).read().strip()
30
 
 
31
 
def setAutoMount(doAuto):
32
 
    """Enable or disable automounting for this user."""
33
 
    if doAuto:
34
 
        command = "touch %s" % AUTOMOUNT_FILE
35
 
        #open(AUTOMOUNT_FILE, "w")
36
 
    else:
37
 
        command = "rm %s" % AUTOMOUNT_FILE
38
 
        #os.remove(AUTOMOUNT_FILE)
39
 
 
40
 
    return commands.getstatusoutput(command)
41
 
 
42
 
def getAutoMount():
43
 
    """Return whether or not automounting is enabled for this user."""
44
 
    return os.path.exists(AUTOMOUNT_FILE)
45
 
 
46
 
def setAutoUnmount(doAuto):
47
 
    """Enable or disable automounting for this user."""
48
 
    if doAuto:
49
 
        command = "touch %s" % AUTOUMOUNT_FILE
50
 
    else:
51
 
        command = "rm %s" % AUTOUMOUNT_FILE
52
 
 
53
 
    return commands.getstatusoutput(command)
54
 
 
55
 
def getAutoUnmount():
56
 
    """Return whether or not automounting is enabled for this user."""
57
 
    return os.path.exists(AUTOUMOUNT_FILE)
58
 
 
59
 
def setMounted(doMount):
60
 
    """Set the mounted (unencrypted) state of ~/Private."""
61
 
    if doMount:
62
 
        command = "mount.ecryptfs_private"
63
 
    else:
64
 
        command = "umount.ecryptfs_private"
65
 
 
66
 
    return commands.getstatusoutput(command)
67
 
 
68
 
def getMounted():
69
 
    """Return whether or not ~/Private is mounted (unencrypted)."""
70
 
    if PRIVATE_LOCATION:
71
 
        mounts = open("/proc/mounts").read()
72
 
        return PRIVATE_LOCATION in mounts
73
 
    else:
74
 
        return False
75
 
 
76
 
def needsSetup():
77
 
    encryptedHome = False #TODO: implement
78
 
    encryptedPrivate = PRIVATE_LOCATION
79
 
    return not (encryptedHome or encryptedPrivate)