Set the default permissions for newly created files
By default, when you create a file as a regular user, it’s given the permissions of rw-rw-r–. You can use the umask (stands for user mask) command to determine the default permissions for newly created files.
The umask is the value that is subtracted from the 666 (rw-rw-rw-) permissions when creating new files, or from 777 (rwxrwxrwx) when creating new directories. For example, if the default umask is 002, new files will be created with the 664 (rw-rw-r–) permissions, and new directories with the 775 (rwxrwxr-x) permissions.
To dispay the current value of umask, run the umask command without any options:
To temporarily change your umask value, run the umask VALUE command. This changes the umask value only for the current shell:
In the picture above you can see that we have changed the umask value to 044. Remember the numbers representing the permissions: r=4, w=2 and x=1. The umask of 044 means that the permissions for the newly created files will be rw- -w- -w- or 622 (because 044 subtracted from 666 gives 622). The permissions for the newly created directories will be rwx -wx -wx or 733 (because 044 subtracted from 777 gives 733).
To change the default umask value permanently for a specific user, you need to modify the .bashrc file in the user’s home directory. For example, to change the default umask for user bob, just add the following line at the end of the /home/bob/.bashrc file:
Reopen the shell. The default umask value is now 044:
To change the default umask value permanently for all users, you can use the following command:
pam-config -a –umask –umask-umask=VALUE
Replace the last three numbers with the umask of your choice. The change will be made the next time you log in to the system. Note that the umask definition in the .bashrc file will override the system umask.
Linux course
- Overview
- What is Linux?
- Differences between Linux and Windows
- Differences between Unix and Linux
- Linux distributions
- Linux kernel
- File structure in Linux
- Filesystem Hierarchy Standard (FHS)
- Installation
- Change the boot order in BIOS
- Install Ubuntu
- Install CentOS on VMware Player
- Login to Ubuntu
- Shell
- The shell in Linux
- Bourne-again shell (Bash)
- Start the shell in Ubuntu
- Essential Linux commands
- Command line history
- Manual pages
- info command
- Manage directories
- Manage files
- Environment variables
- Common environment variables
- PATH environment variable
- Inode
- Links
- Hard links
- Symbolic links
- Wildcard
- Streams
- Redirect input and output
- Pipe data between programs
- Sort lines of a text file
- Search for text strings using grep
- Search for files using find
- Search for files using locate
- Count lines in a file
- Determine file type
- whereis command
- Display last lines of a text file
- Display first lines of a text file
- Split the output of a program
- Editing text
- Text editors
- gedit text editor
- KWrite text editor
- Pico text editor
- nano text editor
- less text viewer
- Managing processes
- What is a process?
- List all running processes
- top command
- Kill a process in Linux
- Kill a process by name
- Change process priority
- Background and foreground processes
- jobs command
- Install applications
- Package managers
- RPM Package Manager
- yum package manager
- Debian package manager
- Advanced Packaging Tool (APT)
- apt-cache command
- apt-get command
- dselect
- aptitude
- Synaptic Package Manager
- tar (tape archive) program
- cpio program
- Convert between packages
- Manage users
- root account
- Create users
- Delete users
- Modify users
- Manage passwords
- /etc/passwd file format
- /etc/shadow file format
- Change passwords
- Manage groups
- Linux groups
- Create groups
- Delete groups
- Modify groups
- /etc/group file format
- Administer groups
- Customize a user's work environment
- Permissions
- UID (User Identifier) and GID (Group Identifier)
- Manage file ownership
- Change file ownership
- Permissions basics
- Permission bits
- Identify file type
- Modify file permissions
- Set the default permissions for newly created files
- Change file attributes
- Manage hardware
- proc filesystem (procfs)
- IRQ (Interrupt Request)
- I/O ports
- DMA (Direct Memory Access)
- Kernel modules
- Load kernel modules
- Remove kernel modules
- Identify CPU
- Find out more information about your system
- Display information about USB devices
- Boot Linux
- GRUB version 1
- GRUB version 2
- Alternative boot loaders
- dmesg command
- Runlevels
- /etc/inittab
- Change runlevel
- Network protocols
- What is an IP address?
- What is a MAC address?
- What is DHCP?
- What is DNS?
- Basic networking
- ifconfig command
- Configure a static IP address in Ubuntu
- Configure DHCP client on Ubuntu
- Configure DNS settings
- /etc/hosts file
- Configure hostname
- Network tools
- ping command
- traceroute command
- host command
- dig command
- nslookup command
- netstat command
- tcpdump command
- whois command
- IP forwarding
- Overview of file systems
- File system
- ext2fs
- ext3fs
- ext4fs
- Reiser file system
- XFS file system
- JFS file system
- FAT file system
- NTFS file system
- ISO-9660 file system
- Disk partitioning
- What is partitioning?
- Swap partition
- Hard disk interfaces
- MBR partitions
- GPT partitions
- Configure hard disks
- fdisk utility
- GNU Parted utility
- Create a file system
- Mount a file system
- /etc/fstab file
- Mount a USB device
- Check disk space
- Check file disk usage
- Check file systems
- Obtain file system information
- Adjust file system parameters
- Debug a file system
- Configure disk quotas
- Disk quotas
- Enable quota support
- Set quotas
- Disk quota reporting
- Logging
- syslog protocol explained
- syslogd
- rsyslog
- Create a log entry
- Rotate logs
- Common log files
- /var/log/messages file
- Schedule jobs
- Schedule jobs with cron
- User cron jobs
- Schedule jobs with anacron
- Schedule jobs with at
- Date and time
- date and hwclock commands
- Network Time Protocol (NTP)
- Configure NTP client
- Configure NTP server
- Email protocols
- Mail server
- Read and send mail
- Redirect email
- Shell scripting
- Shell scripts
- Create shell scripts
- Write shell scripts
- if statement
- case statement
- for loop
- while loop
- until loop
- Miscellaneous
- Show the full path of shell commands
- Remove duplicate lines from a text file
- Join lines of two files
- Merge files line by line
- Convert tabs to spaces
- Prepare a file for printing
- Split a file into two or more files
- Archive a filesystem
- Filter text
- Shut down the system
- Halt, reboot, and power off the system
- Create aliases
- Octal dump
- Number lines in a file
- Measure time of program execution
- Change characters
- Reformat paragraphs
- type command