Configuring and the File System -- Outlying Files and Security Issues |
![]() |
Because a workspace is a directory, it and the files it contains are governed by the same ownership and permissions settings that govern other directories. Therefore, a workspace is subject to the effects of commands from both Configuring and the operating system. While this arrangement provides a high degree of flexibility, it introduces the potential for circumventing the automation and security features built into Configuring.
This topic describes ways you may want to take advantage of the directory nature of workspaces and ways you can protect workspaces from inadvertent file system manipulation.
There are two common ways to incorporate outlying files into your build automatically: with symbolic links or by copying the files directly into a development workspace.
To improve performance, a developer may want to copy a file directly into the workspace instead of establishing a symbolic link. Once again, this action can be conveniently performed in a makefile, as shown in the fragment of Figure 39.
Wrapping Configuring Commands
Another approach is to wrap the bringover and putback commands in executable shell scripts. The wrappers can copy the necessary files before issuing the bringover or putback, effectively automating the process. Wrappers are typically linked symbolically to the command name (bringover or putback), and the symbolic link is placed in the execution directory in place of the original executable. The original executable is moved to another directory, from which it is called by the wrapper.
Wrapper scripts can also be used to establish symbolic links in the current working directory. They work equally well from the command line or the graphical user interface (GUI), because the GUI itself performs bringover and putback transactions by issuing commands in a shell.
Security and Access Control
User accessibility to workspaces is controlled by the Codemgr_wsdata/access_control file in each workspace. Entries in this file determine which users can initiate bringover and putback transactions, and who can delete, reparent, and move the workspace. Control at this level is adequate to prevent unauthorized access to workspaces by users who execute Configuring commands. Users still have access to workspace directories with operating system commands, however.